我有一个带透明框架的动画gif
图片。
我需要调整它的大小。
在调整大小之前,我使用Magick::coalesceImages
函数,在调整图像大小后,我使用Magick::writeImages
函数将所有gif
帧收集回一个单独的图像。
问题是输出大小调整后的图像文件大小比原始大小大,因为原始动画gif
具有透明帧,而新调整大小的gif
没有任何透明帧。 / p>
我已阅读www.imagemagick.org上有关帧优化的内容,此外我还可以在www.graphicsmagick.org gifDisposeMethod
函数上看到。
我的问题是,如何让调整大小的动画gif
图片使用透明度框架并避免增加图片KBytes
尺寸?
答案 0 :(得分:3)
好吧,我找到了要走的路:
调整动画gif
的大小时,使用Magick::coalesceImages()
不是最好的方法......
相反,我会根据百分比大小进行重新调整,而不是绝对大小调整,同时跳过Magick::coalesceImages()
调用。
例如,假设我的原始动画gif
为300x300,我想将其调整为150x150,我会执行以下操作:
Magick::Blob
这样我们就不会增加每个帧的大小,因为我们没有使用Magick::coalesceImages()
函数,而是根据原始大小调整每个帧的大小,所以我们对帧的透明度没有任何问题