是否有一种方法可以使用ImageMagick获得图像帧的数量,而不必像readImages一样解码所有数据到列表中?<< / image>
答案 0 :(得分:4)
Magick ++库具有 @Override
public void onAttach(Context context) {
super.onAttach(context);
try {
onVariationChanged = (onVariationChanged) context;
} catch (ClassCastException e) {
throw new ClassCastException(context.toString() + " must implement onVariationChangedListener");
}
}
方法来读取标头信息而不是图像数据。
正如GeeMack所指出的,您只需要阅读最后一帧(后缀Magick::Image.ping
)并进行调整即可。
[-1]
答案 1 :(得分:3)
从命令行使用ImageMagick版本6,您可以执行此操作...
convert input.gif[-1] -format %[scene] info:
那应该只读取最后一帧并输出其帧号,该帧号比帧总数少一。
您可以让IM通过一些技巧设置将一个数字添加到该号码,并读取虚假的寻呼信息,像这样...
convert input.gif[-1] -set page +%[scene] -format %[fx:page.x+1] info:
这应该输出GIF中的帧总数。
如果使用IM版本7,请使用“ magick”代替“ convert”。
答案 2 :(得分:0)
在Imagemagick中的另一种方法,至少在Unix系统上,在命令行中,您可以执行以下从Imagemagick到wc的管道(字数统计,可以使用wc -l计数行数):
convert logo: logo: logo: logo.gif
convert logo.gif -format "%n\n" info: | wc -l
3
的字符串格式