2011-07-18 36 views
1

我想使用libMagick.so库裁剪gif图像。使用使用libMagick裁剪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格式时,我得到了预期的结果。

回答

3

您需要添加-repage选项GIF文件:

convert img.gif -crop 91x68+6+116 -repage 0x0 out.gif 

的问题是,GIF格式可以包含多个图片(大小不同)时,他们的动画所以裁剪只是影响而图像之一保持整体GIF画布的大小不变。使用0x0为画布大小是一个简单的快捷方式,使其ImageMagick的找出图像应该多大:

给定为零,如“为0x0”力量的画布大小它重新计算画布大小等等图像(在当前偏移处)将完全显示在该画布上。

+0

好吧,我试过你的想法,它部分工作。我发现,当我使用convert img.gif -crop 91x68 + 6 + 116! out.gif我得到我想要的结果,你能解释为什么,请 – Oded

+0

@Oded:“部分工作”是什么意思?几何参数格式记录在这里:http://www.imagemagick.org/script/command-line-processing.php#geometry –