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

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

假设我已经查找了.gif文件并返回了一堆文件。我现在想测试一下它们是否是动画动图。我可以通过命令行执行此操作吗?

我在下面上传了几个示例,以防您想进行实验。

动画 GIF 图像

动画 gif 图像

静态 GIF 图像

静态 gif 图像

答案1

这可以很容易地使用来完成图像魔术师

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

12 animated.gif
1 non_animated.gif

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

(ImageMagick 可能可以在您的发行版存储库中轻松获得,以便于安装)

答案2

使用exiftool

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

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

答案3

另一种im使用方法fx操作员:

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

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

相关内容