对于图像调整大小工具,我有一段应该裁剪图像的代码。 问题在于它不会首先调整它的大小。
假设我们要调整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]);
}