使用Image Magician裁剪和调整图像大小

时间:2014-02-12 12:37:29

标签: php image-processing

我正在使用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

是否有任何选项可以调整大小并将其裁剪为精确尺寸?

1 个答案:

答案 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']);