Encuentra todos los archivos gif animados en un directorio y sus subdirectorios


12

Digamos que hice una búsqueda de .gifarchivos y recuperé un montón de archivos. Ahora quiero probarlos para ver si son gifs animados . ¿Puedo hacer esto a través de la línea de comando?

He subido un par de ejemplos a continuación, en caso de que desee experimentar con ellos.

Imagen GIF animada

imagen animada gif

Imagen GIF estática

imagen estática gif

Respuestas:


22

Esto se puede hacer fácilmente usando ImageMagick

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

12 animated.gif
1 non_animated.gif

identify -format %nimprime el número de cuadros en el gif; para los gifs animados, este número es mayor que 1.

(ImageMagick probablemente esté fácilmente disponible en los repositorios de su distribución para una fácil instalación)


Perfecto, gracias. Ya tengo instalado ImageMagick.
Max Williams

9

Utilizando exiftool:

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

Informaría las rutas de los archivos GIF que tienen más de un marco (en el directorio actual, de forma recursiva).


5

Otra forma de imusar el fxoperador:

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

Esto busca en el directorio actual y sus subdirectorios las .gifimágenes que ejecutan ese comando de shell para cada una .gifencontrada. Si n>1se fximprime el número de fotogramas 1, de lo contrario se imprime 0. Esto se canaliza a grep -q 1modo -printque solo se ejecuta si el anterior -execfue exitoso.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.