微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 foreach() 在大小值数组上使用 Imagick 的 resizeImage() 函数不起作用 - PHP

如何解决使用 foreach() 在大小值数组上使用 Imagick 的 resizeImage() 函数不起作用 - PHP

我有一张图片,我想使用 Imagick 中的 resizeImage() 函数将其重新调整为不同的大小。

我在关联数组中设置了一系列宽度,然后使用 foreach() 循环遍历它们。

当我删除 foreach 循环并手动添加特定大小作为宽度参数(例如 150)时,它可以工作,但是当我从带有循环的关联数组中获取值时,它却没有?

// create new class of image from image in memory/tmp_folder
$image = new Imagick($temp);

$sizesjpeg = [
  'tiny_' => 50,'small_' => 150,'medium_' => 500,'large_' => 1500,];

$destinationFolder = 'images_lib/';

// image processing of different sizes from the array
foreach ($sizesjpeg as $sizename => $size) {

  // setting the height to 0 means it only resizes the width thus keeping the image ratio
  $image->resizeImage($size,Imagick::FILTER_lanczos,1);
  $image->writeImage($destinationFolder . $file);

}
$image->clear();

UPDATE$image->clear(); 方法移到 foreach 循环之外后,我不再收到错误消息,但我只得到了一张非常模糊的图像,它是数组中最后一个键的尺寸(1500 像素宽)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。