【问题标题】:crop gif image using libMagick使用 libMagick 裁剪 gif 图像
【发布时间】: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 时,我得到了预期的结果。

【问题讨论】:

    标签: image image-processing crop rmagick


    【解决方案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
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 2016-05-25
    • 2012-12-28
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多