Bir dizindeki ve alt dizinlerindeki tüm animasyonlu gif dosyalarını bulun


12

diyelim ki .gifdosyalar için bir keşif yaptım ve bir sürü dosyayı geri aldım. Şimdi onları animasyonlu gif olup olmadığını test etmek istiyorum . Bunu komut satırı üzerinden yapabilir miyim?

Bunları denemek istemeniz durumunda, aşağıda birkaç örnek yükledim.

Animasyonlu GIF resmi

animasyonlu gif görüntü

Statik GIF Resmi

statik gif resmi

Yanıtlar:


22

Bu ImageMagick kullanılarak kolayca yapılabilir

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

12 animated.gif
1 non_animated.gif

identify -format %ngifteki kare sayısını yazdırır; hareketli gifler için bu sayı 1'den büyük.

(ImageMagick muhtemelen dağıtımınızın depolarında kolay kurulum için kolayca kullanılabilir)


Mükemmel, teşekkürler - ImageMagick zaten kurulu.
Max Williams

9

Kullanma exiftool:

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

Birden fazla kareye sahip GIF dosyalarının yollarını bildirir (geçerli dizinde özyinelemeli olarak).


5

Operatörü imkullanmanın başka bir yolu fx:

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

Bu, bulduğu .gifher bir kabuk komutunu çalıştıran görüntüler için geçerli dizinde ve alt dizinlerinde arama yapar .gif. Çerçeve sayısı ise n>1o zaman fxbasar 1, aksi takdirde yazdırır 0. Bu grep -q 1şekilde yapılır -print, ancak bir önceki -execbaşarılı olursa yürütülür .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.