【发布时间】:2013-04-22 09:26:34
【问题描述】:
我编写了一个小代码来调整服务器上的图像大小。我正在xampp上测试它。这里是:
if ($img_width[0] >= 750) { $imagick_image_width = 920; }
elseif (($img_width[0] > 500) && ($img_width[0] < 750)) { $imagick_image_width = 500; }
elseif (($img_width[0] >= 200) && ($img_width[0] <= 500)) { $imagick_image_width = 500; }
$save_path = 'c:/xampp/htdocs/images/'.$image_name.'.jpg';
$image = new Imagick($save_path);
$image->resizeImage($imagick_image_width, 0,Imagick::FILTER_LANCZOS,0.95); //line 226
$image->writeImage($save_path);
$image->destroy();
我已经通过 getimagesize 数组获取了 img_width。
执行时会报错:
Fatal error: Uncaught exception 'ImagickException' with message 'Invalid image geometry' in C:\xampp\htdocs\test-templ.php on line 226
ImagickException: Invalid image geometry in C:\xampp\htdocs\test-templ.php on line 226
如何解决?
【问题讨论】:
-
您为高度参数传递了 0,这可能就是 imagick 抱怨的原因。
-
2.1.0 添加了可选的拟合参数。此方法现在支持按比例缩放。将零作为比例缩放的任一参数传递。 php.net/manual/en/imagick.resizeimage.php
-
我忘记了,抱歉。但是在第二次阅读时,我注意到您正在设置 $imagick_image_width,但您正在使用 $size_imagick_image 变量。是错字还是有更多代码?
-
糟糕,这是一个错字,我编辑了代码。
-
$img_width 的值是多少?
标签: php imagemagick