如何调整 gif 大小而不变形,并在裁剪时删除空白区域?

如何调整 gif 大小而不变形,并在裁剪时删除空白区域?

下面的 gif 尺寸是 600*800。高度是 800 像素,所以底部有很多空白,我想删除它们。

源 gif:old.gif

保存为old.gif

file old.gif 
old.gif: GIF image data, version 89a, 600 x 800

使用转换命令调整大小:

convert old.gif -coalesce temp.gif
convert -size 600x800 temp.gif -resize 600x400! new.gif

表示忽略长宽比,不保持长宽比不变。
结果如下:

压缩 gif

新的文件new.gif变形了。

怎样才能调整 gif 大小而不使其变形?

我尝试-crop争论。

convert old.gif -crop 600x400+0+0 new.gif

裁剪后的带有空白的 gif

如何去除 new.gif 中的空白区域?

Firefox 中的空白区域很明显。 convert old.gif -crop 600x400+0+0 new.gif无法删除中的空白区域new.gif

浏览器中的 gif

使用该repage参数将删除空白区域,但会使 gif 更加模糊。

convert old.gif -crop 600x400+0+0 -trim  +repage  new.gif    

模糊的 gif

答案1

!在给出决议后使用-crop

convert old.gif -crop 600x400+0+0\! new.gif

在此处输入图片描述

imagemagick 文档

从 ImageMagick 版本 6.2.4-5 开始,您可以向“ -crop”参数添加一个新的特殊标志。此标志“ !”将指示 crop 调整返回图像的虚拟画布信息,使其与裁剪区域相关。

...

请注意,返回的图像的画布大小现在与图像裁剪的区域相匹配。

相关内容