开发者社区> 问答> 正文

ImageMagick处理gif图片的奇怪问题:报错

今天在裁剪gif图片的时候遇到问题了。

gif图片裁剪后,图片大小仍然是原图大小,只保留了裁剪区域的图像,其余部分变成背景色透明了。

查找后,发现时ImageMagick的问题,有解决办法,但是jmagick目前没有任何解决方案,大家有知道的吗?

我在本地把这种gif用工具转成jpeg都再裁剪都不好用,真是神奇。

 

别人的帖子如下:

http://dev.csdn.net/htmls/66/66714.html

裁剪用-crop,jpg没问题,不过遇到gif就要注意了
例如下图:

裁剪只裁剪图片内容,不能消除背景的size,

convert image1.gif -crop 75x75+0+0 image2.gif

结果如下图片

解决办法使用+repage参数

convert image1.gif -crop 75x75+0+0 +repage image2.gif

75x75是结果的size,+0+0是图片在画布中间的偏移量,用了+repage会清空图片以外的空白

不过在jmagick的接口中没找到如何把+repage参数传递进去

    /**
     * Creates a new image that is a subregion of the original.
     *
     * @param chopInfo the subimage
     * @return a subimage of the original
     * @exception MagickException on error
     */
    public native MagickImage cropImage(Rectangle chopInfo)
 throws MagickException;

 

目前我只有一种方式是可以解决这个问题,就是在保存文件的时候,保存成其他格式的图片,不保存成gif。

这样可以解决~

虽然解决了,但是感觉不是很好,毕竟更改了人家上传文件的格式。

展开
收起
kun坤 2020-06-06 00:15:09 845 0
1 条回答
写回答
取消 提交回答
  • 目前我只有一种方式是可以解决这个问题,就是在保存文件的时候,保存成其他格式的图片,不保存成gif。

    这样可以解决~

    虽然解决了,但是感觉不是很好,毕竟更改了人家上传文件的格式。

    ######
    请教一下,我也遇到这个问题了.现在有好的解决方法么?
    ######

    引用来自“osGuo”的答案

    请教一下,我也遇到这个问题了.现在有好的解决方法么?
    $image->Set(page=>'0x0+0+0'); 这样子操作一下就可以了,我是用perl写的,你可以查查set函数相关资料
    ######二二二二
    2020-06-06 00:15:14
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载