如何使用 ImageMagick (php) 调整动画 gif 的大小?

Posted

技术标签:

【中文标题】如何使用 ImageMagick (php) 调整动画 gif 的大小?【英文标题】:How to resize an animated gif with ImageMagick (php)? 【发布时间】:2017-11-22 04:32:34 【问题描述】:

我找不到有效的示例。这个不工作,没有动画:

$imagick = new Imagick($_FILES['file']['tmp_name']);

$format = $imagick->getImageFormat();
if ($format == 'GIF') 
  $imagick = $imagick->coalesceImages();
  do 
     $imagick->resizeImage(500, 500, Imagick::FILTER_BOX, 1);
   while ($imagick->nextImage());
  $imagick = $imagick->deconstructImages();
  $imagick->writeImages($name, true);



$imagick->clear();
$imagick->destroy();

【问题讨论】:

【参考方案1】:

在 ImageMagick 命令行中,这对我有用

原创动画:

convert animation.gif -coalesce -resize 500x500 -layers optimize -loop 0 resize.gif

您在阅读输入动画后是否执行了等效于 -coalesce 的操作?调整大小后是否进行了优化?

抱歉,我不使用 php Imagick 或任何其他 API。

【讨论】:

以上是关于如何使用 ImageMagick (php) 调整动画 gif 的大小?的主要内容,如果未能解决你的问题,请参考以下文章

imagemagick:调整大小后如何获取图像大小?

无论imagemagick中的方向如何,都会自动调整较短边的图像大小

ImageMagick:转换、裁剪、调整大图像

使用具有最大宽度/高度的 ImageMagick 调整大小

使用 Imagemagick 将大图像裁剪为特定的纵横比,然后调整它们的大小

Rails Carrierwave和Imagemagick,使用条件调整图像大小