ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

c-使用GraphicsMagick调整动画GIF的大小

2019-12-08 11:51:17  阅读:499  来源: 互联网

标签:imagemagick image-processing image-manipulation linux c-4


我有一个带有透明框架的gif动画图像.
我需要调整大小.

在调整大小之前,我使用Magick :: coalesceImages函数,在调整图像大小之后,我使用Magick :: writeImages函数将所有gif帧收集回到一个图像中.

问题在于输出的调整大小后的图像文件大小大于原始大小,因为原始的动画gif具有透明框架,而新的调整大小的gif没有任何透明框架.

我已经在www.imagemagick.org上阅读了有关帧优化的信息,并且在www.graphicsmagick.org上还可以看到gifDisposeMethod函数.

我的问题是,如何使经过调整大小的动画gif图像使用透明框架并避免图像千字节大小的增加?

解决方法:

好吧,我找到了走的路:

调整动画gif大小时,使用Magick :: coalesceImages()并不是最好的方法…

相反,我是根据百分比大小而不是绝对大小调整大小的,而跳过了Magick :: coalesceImages()调用.

例如,假设我的原始动画gif为300×300,而我想将其调整为150×150,则可以执行以下操作:

>在Magick :: Blob中读取图像
>计算百分比数字(在我的演示案例中为50%x50%)
>根据百分比计算调整图像每一帧的大小.

这样,我们不会增加每个帧的大小,因为我们没有使用Magick :: coalesceImages()函数,并且会根据其原始大小调整每个帧的大小,因此我们对帧的透明度没有任何问题.

标签:imagemagick,image-processing,image-manipulation,linux,c-4
来源: https://codeday.me/bug/20191208/2091009.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有