在目录及其子目录中查找所有动画gif文件


12

比方说,我已经找到了.gif文件,并找回了一堆文件。我现在要测试它们,看看它们是否为gif 动画。我可以通过命令行吗?

如果您想尝试一下,我在下面上传了几个示例。

动画GIF图片

动画gif图像

静态GIF图片

静态gif图像

Answers:


22

这可以使用ImageMagick轻松完成

identify -format '%n %i\n' -- *.gif

12 animated.gif
1 non_animated.gif

identify -format %n打印gif中的帧数;对于动画gif,此数字大于1。

(ImageMagick可能已经可以在发行版的存储库中轻松安装了)


完美,谢谢-我已经安装了ImageMagick。
马克斯·威廉姆斯

9

使用exiftool

exiftool -q -if '$framecount > 1' -p '$directory/$filename' -r -ext:gif .

将报告一帧以上的GIF文件的路径(在当前目录中,递归地)。


5

im使用fx运算符的另一种方式:

find . -type f -name \*.gif -exec sh -c \
'identify -format "%[fx:n>1]\n" "$0" | grep -q 1' {} \; -print

这会在当前目录及其子目录中搜索.gif为每个.gif找到的运行该shell命令的映像。如果帧数n>1,然后fx打印1,否则打印0。这是通过管道传递给的,grep -q 1因此-print只有在前一个-exec成功的情况下才执行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.