gpt4 book ai didi

PHP GD - 如何修改我的 Thumbnail Creator 以从中心裁剪人像图像?

转载 作者:行者123 更新时间:2023-12-04 06:52:46 26 4
gpt4 key购买 nike

这是我当前的代码:

$image  = 'img.jpg';
$source = imagecreatefromjpeg($image);

list($origWidth, $origHeight) = getimagesize($image);

$imgH = 75;
$imgW = $origWidth / $origHeight * $imgH;
$thumb = imagecreatetruecolor($imgW, $imgH);

imagecopyresampled($thumb, $source, 0, 0, 0, 0, $imgW, $imgH, $origWidth, $origHeight);

这允许我输出固定高度为 75 像素的图像。我想要做的是有一个恒定的图像大小 99x75像素。不适合的肖像图像将从中心裁剪(因此原始的中心仍然是缩略图的中心 - 如果有意义的话)。

我怎样才能做到这一点?

最佳答案

嗯,这是纯数学。您想要达到 99x75 的尺寸,并且您只想从宽度上进行裁剪。所以首先,你调整大小以适应高度。这就是你所做的,但它是为了适合 75 的高度。将其切换为 99。然后,检查宽度是否 <= 75。如果不是,则执行以下操作:

if( $imgW > 75 )
{
$diff = $imgw - 75; // this is what's extra
$srcX = ceil( $diff / 2 ); // this is where your img starts from
$imgW = 75;
}
imagecopyresampled($thumb, $source, 0, 0, $srcX, 0, $imgW, $imgH, $origWidth, $origHeight); // notice that src X changed accordingly.

因此,如果第一次“调整大小”后的宽度为 100 并且您想要 75,则计算 diff = 25,将其除以 2 并将其划分为 ceil => 13,然后您告诉 GD 函数从 13 开始复制图像,而不是 0,并且仍然保持 75 高度。这意味着它将从宽度 13 复制到宽度 88 => 中心。

希望这是你想要的。
问候,
加布里埃尔

关于PHP GD - 如何修改我的 Thumbnail Creator 以从中心裁剪人像图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2879526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com