【问题标题】:ERROR: Uncaught exception 'ImagickException' with message 'Invalid image geometry'错误:未捕获的异常“ImagickException”与消息“无效的图像几何”
【发布时间】: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


【解决方案1】:

在使用$imagick_image_width 变量调整大小之前检查它的值。 我遇到了同样的错误,参考它我的 laravel 代码无法从“env”文件中读取值。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    • 2014-08-09
    • 2014-09-09
    • 1970-01-01
    • 2016-05-19
    相关资源
    最近更新 更多