使用 libMagick 裁剪 gif 图像
Posted
技术标签:
【中文标题】使用 libMagick 裁剪 gif 图像【英文标题】:crop gif image using libMagick 【发布时间】:2011-07-18 09:21:54 【问题描述】:我正在尝试使用 libMagick.so 库裁剪 gif 图像。
./convert --version
Version: ImageMagick 6.2.8 03/31/08 Q16 file:/usr/share/ImageMagick-6.2.8/doc/index.html
使用以下命令:
convert img.gif -crop 91x68+6+116 out.gif
out.gif 图像被裁剪,但未调整大小。我得到相同的图像大小,而所有图像都是透明的,除了从左点 6 像素开始的 91 像素和从顶部 116 像素开始的 68 像素。
我怎样才能使转换命令裁剪,只留下裁剪的部分作为输出图像。 顺便说一句,当我的输出图像是 jpg 时,我得到了预期的结果。
【问题讨论】:
【参考方案1】:您需要为 GIF 文件添加 -repage
选项:
convert img.gif -crop 91x68+6+116 -repage 0x0 out.gif
问题在于 GIF 在动画时可以包含多个图像(不同大小),因此裁剪只会影响其中一个图像,而不会影响整个 GIF 画布大小。使用 0x0
作为画布大小是让 ImageMagick 确定图像应该有多大的简单快捷方式:
给定的画布大小为零,例如 '0x0' 强制它重新计算画布大小,以便图像(在其当前偏移处)将完全显示在该画布上。
【讨论】:
好吧,我尝试了你的想法,它部分奏效了。我发现当我使用 convert img.gif -crop 91x68+6+116! out.gif 我得到了我想要的结果,你能解释一下为什么吗?请 @Oded:“部分工作”是什么意思?几何参数格式记录在这里:imagemagick.org/script/command-line-processing.php#geometry以上是关于使用 libMagick 裁剪 gif 图像的主要内容,如果未能解决你的问题,请参考以下文章