错误:未捕获的异常'ImagickException',消息为'无效的图像几何形状'。

3

我编写了一段小代码,用于调整服务器上的图像大小。我正在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

如何解决这个问题?

1
您正在将高度参数传递为0,这可能是Imagick抱怨的原因。 - krcko
2
2.1.0 版本新增了可选的 fit 参数。该方法现在支持等比例缩放。将任一参数传递为零以进行等比例缩放。 http://php.net/manual/zh/imagick.resizeimage.php - g13
我忘了那个,抱歉。但在第二次阅读时,我注意到您正在设置 $imagick_image_width,但是您正在使用 $size_imagick_image 变量。这是笔误还是有更多的代码? - krcko
哎呀,那是一个打字错误,我编辑了代码。 - g13
你解决了你的问题吗?我也遇到了这个问题。 - T3rm1
显示剩余5条评论
1个回答

0

在调整大小之前,请检查$imagick_image_width变量的值。

我遇到了同样的错误,参考它后,我的Laravel代码无法从'env'文件中读取值。

尝试使用任何默认大小初始化$imagick_image_width变量。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接