c-使用GraphicsMagick调整动画GIF的大小
作者:互联网
我有一个带有透明框架的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