c++ - 无需解码所有数据即可获取 gif 帧数

标签 c++ imagemagick

有没有一种方法可以使用 ImageMagick 获取图像帧的数量,而不必像 readImages 那样将所有数据解码为 list

最佳答案

Magick++ 库有 Magick::Image.ping 方法来读取标题信息而不是图像数据。

正如 GeeMack 指出的那样,您只需要读取最后一帧(带有 [-1] 后缀),然后进行调整。

Magick::Image temp;
size_t total_frames = 0;

temp.ping("animation.gif[-1]");
total_frames = temp.scene() + 1;

关于c++ - 无需解码所有数据即可获取 gif 帧数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56213972/

相关文章:

c++ - 构建失败,Visual C++ 中出现 cstdio 和 cstdlib 错误

c++ - 将 QString 转换为 char* 以用于第 3 方库的内存清理问题,如何解决?

c++ - 这个 noexcept 声明有效吗?

python - MoviePy VideoFileClip 实例没有属性 'reader'

c++ - 为什么这是部分特化? (我能做什么?)

c++ - 在抛出过程中构造对象时抛出异常?

python - 根据亮度/亮度对图像文件进行排序

c++ - 使用 Magick++ 的形态学

c++ - 如何在 imagemagick 中将 base64 编码图像转换为 PNG?

c++ - 如何在没有任何断言的情况下构建 imagemagick