我编写了一个小代码来调整服务器上图像的大小。我正在 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
如何解决这个问题?
在使用
$imagick_image_width
变量调整大小之前检查其值。
我遇到了同样的错误,参考它,我的 laravel 代码无法从“env”文件中读取值。
尝试使用任何默认大小初始化
$imagick_image_width
变量。
bestfit
参数的记录很少。如果将其中一个维度设置为 false
,则需要将其设置为 0
。
如果
bestfit=false
和 height=0
那么 imagemagick 将计算比例高度。如果 bestfit=true
和 height=0
,您将收到“无效的图像几何”错误。
bestfit=true
仅当指定宽度和高度时才应使用,它将调整一个尺寸以保持长宽比一致。