PHP调整图像大小并裁剪它们以防止拉伸

时间:2017-09-19 09:59:00

标签: php image gd

对于图像调整大小工具,我有一段应该裁剪图像的代码。 问题在于它不会首先调整它的大小。

假设我们要调整2000x2000图像的大小,最终尺寸最终为50x20,我得到图像中心的一小部分,使图像的许多内容被破坏。相反,我希望首先调整2000x2000的大小,同时保持原始比例,然后裁剪以确保图像不被拉伸(删除侧面剩余的30px)。

我目前的代码如下:

if((isset($options['crop']) && $options['crop'] == true) && ($maxWidth <= $oldWidth && $maxHeight <= $oldHeight)) {
    $cx = $oldWidth / 2;
    $cy = $oldHeight / 2;
    $x = $cx - $maxWidth / 2;
    $y = $cy - $maxHeight / 2;
    if ($x < 0) $x = 0;
    if ($y < 0) $y = 0;
    $thumb = imagecrop($source, ['x' => $x, 'y' => $y, 'width' => $maxWidth, 'height' => $maxHeight]);
}

0 个答案:

没有答案