ImageMagick处理gif图片的奇怪问题

Stella981
• 阅读 787

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

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

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

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

别人的帖子如下:

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

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

ImageMagick处理gif图片的奇怪问题

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

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

结果如下图片

ImageMagick处理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。

这样可以解决~

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

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
IM4Java + GraphicsMagick 实现高清图片剪裁处理
_简单介绍_GraphicsMagick是ImageMagick的一个分支,相对于ImageMagick而言,TA处理速度更快,消耗资源更少。GraphicsMagick是一个用来读写、生成超过90种图像格式的工具集合,支持包括TIFF,JPEG,JPEG2000,PNG,PDF,PhotoCD,SVG,和GIF等图像格式。G
Stella981 Stella981
3年前
KaliTools说明书+BurpSuit实战指南+SQL注入知识库+国外渗透报告
!(https://oscimg.oschina.net/oscnet/d1c876a571bb41a7942dd9752f68632e.gif"15254461546.gif")0X00KaliLinux Tools中文说明书!(https://oscimg.oschina.net/oscnet/
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
17张程序员专用的电脑壁纸
!(https://oscimg.oschina.net/oscnet/220dde2448be4f7090da175592bd00f9.gif)1、三思后再写代码!!!!(https://oscimg.oschina.net/oscnet/2babd54776e4453d9872ae80efb1fa1d.png)
Stella981 Stella981
3年前
ImageMagick高清压缩图片
之前有写过imageMagick压缩图片的文章,但是那篇文章中用到的是jmagick。JMagick是一个开源API,利用JNI(JavaNativeInterface)技术实现了对ImageMagick(http://www.oschina.net/project/847)API的Java访问接口,因此也将比纯Java实现的图片操作函数在
公孙晃 公孙晃
1年前
Mac端图像浏览、编辑工具:EdgeView 4 for Mac
EdgeView4是一款Mac电脑上的图像浏览和编辑软件。支持多种格式的图片文件,包括JPEG、PNG、GIF、BMP、TIFF等,并提供如缩放、裁剪、旋转、调整亮度、对比度等编辑功能...
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这