我正在使用Image Magician裁剪图片并将其调整到精确尺寸 - 230 x 300px。 大约90%的图像被调整大小并且按照确切的大小进行了修改,但其中一些没有。
我的代码:
$magicianObj = new \Application\Model\ImageMagician($imageLocation);
$magicianObj -> resizeImage(230, 300, 'crop');
$magicianObj -> saveImage($thumb2, 100);
没有正确裁剪和调整大小的图像的几个例子:
1) 原始尺寸:533x800 调整为:229x373
2) 原始尺寸:567x850 调整为:229x346
3) 原始大小:245x398 调整为:229x373
是否有任何选项可以调整大小并将其裁剪为精确尺寸?
答案 0 :(得分:2)
我刚遇到这个问题,找不到任何其他问题,所以我觉得它值得。
由于某种原因,它没有在resizeImage函数中传递此检查:
if (($optimalWidth >= $newWidth && $optimalHeight >= $newHeight)) {
$this->crop($optimalWidth, $optimalHeight, $newWidth, $newHeight, $cropPos);
}
看起来您的最佳宽度小于新宽度,它的最佳宽度为229(可能是229.xxxx),230是您的新宽度(这只是您想要的宽度)。这就是为什么它调整大小但不裁剪的原因。然而,它可能回响230(这里是899,但如果我回应它写900),不知道为什么。在获取值时使用ceil()应解决它,就在IF之上。
$optimalWidth = ceil($dimensionsArray['optimalWidth']);
$optimalHeight = ceil($dimensionsArray['optimalHeight']);