gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 21:28:53 25 4
gpt4 key购买 nike

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

在调整大小之前,我使用 Magick::coalesceImages 函数,在调整图像大小之后,我使用 Magick::writeImages 函数收集所有的 gif 重新组合成一张图片。

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

我在 www.imagemagick.org 上阅读了有关帧优化的内容另外我可以在 www.graphicsmagick.org 上看到gifDisposeMethod 函数。

我的问题是,如何使调整大小的动画 gif 图像使用透明帧并避免增加图像的 KBytes 大小?

最佳答案

好吧,我找到了要走的路:

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

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

例如,假设我的原始动画 gif 是 300x300,我想将其调整为 150x150,我将执行以下操作:

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

这样我们就不会增加每个帧的大小,因为我们没有使用 Magick::coalesceImages() 函数,而是根据其原始大小调整每个帧的大小,所以我们没有框架透明度的任何问题。

关于c++ - 使用 GraphicsMagick 调整动画 GIF 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6098441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com