Perché ImageMagick crea 15 versioni di questa immagine GIF?


2

Sto scrivendo uno script di shell per determinare se queste GIF di grandi dimensioni potrebbero essere rese più piccole nella dimensione del file per l'utilizzo web convertendole in JPG. Questo GIF sta causando un problema convert. Produce 15 versioni della GIF. Corro il convert comando di nuovo con l'opzione -verbose, ma non vedo perché tratti questo GIF in modo diverso dagli altri e perché ne produca 15 versioni.

La GIF è solo 11K, quindi non sono preoccupato di rendere questo file specifico un JPEG perché è già abbastanza piccolo, ma sto cercando di capire perché convert si sta comportando in questo modo. Sto forse usando in modo errato?

Il convert comando da eseguire:

# convert -verbose Images/made_with_mac.gif /tmp/analyze_images/Images/made_with_mac.jpg
Images/made_with_mac.gif[0] GIF 88x31 88x31+0+0 8-bit sRGB 256c 11.4KB 0.000u 0:00.009
Images/made_with_mac.gif[1] GIF 88x31 88x31+0+0 8-bit sRGB 256c 11.4KB 0.000u 0:00.000
Images/made_with_mac.gif[2] GIF 88x31 88x31+0+0 8-bit sRGB 256c 11.4KB 0.000u 0:00.000
Images/made_with_mac.gif[3] GIF 88x31 88x31+0+0 8-bit sRGB 256c 11.4KB 0.000u 0:00.000
Images/made_with_mac.gif[4] GIF 88x31 88x31+0+0 8-bit sRGB 256c 11.4KB 0.000u 0:00.000
Images/made_with_mac.gif[5] GIF 88x31 88x31+0+0 8-bit sRGB 256c 11.4KB 0.000u 0:00.000
Images/made_with_mac.gif[6] GIF 88x31 88x31+0+0 8-bit sRGB 256c 11.4KB 0.000u 0:00.000
Images/made_with_mac.gif[7] GIF 88x31 88x31+0+0 8-bit sRGB 256c 11.4KB 0.000u 0:00.000
Images/made_with_mac.gif[8] GIF 88x31 88x31+0+0 8-bit sRGB 256c 11.4KB 0.000u 0:00.000
Images/made_with_mac.gif[9] GIF 88x31 88x31+0+0 8-bit sRGB 256c 11.4KB 0.000u 0:00.000
Images/made_with_mac.gif[10] GIF 88x31 88x31+0+0 8-bit sRGB 256c 11.4KB 0.000u 0:00.000
Images/made_with_mac.gif[11] GIF 88x31 88x31+0+0 8-bit sRGB 256c 11.4KB 0.000u 0:00.000
Images/made_with_mac.gif[12] GIF 88x31 88x31+0+0 8-bit sRGB 256c 11.4KB 0.000u 0:00.000
Images/made_with_mac.gif[13] GIF 88x31 88x31+0+0 8-bit sRGB 256c 11.4KB 0.000u 0:00.000
Images/made_with_mac.gif[14] GIF 88x31 88x31+0+0 8-bit sRGB 256c 11.4KB 0.000u 0:00.000
Images/made_with_mac.gif=>/tmp/analyze_images/Images/made_with_mac-0.jpg[0] GIF 88x31 88x31+0+0 8-bit sRGB 256c 2.44KB 0.010u 0:00.010
Images/made_with_mac.gif=>/tmp/analyze_images/Images/made_with_mac-1.jpg[1] GIF 88x31 88x31+0+0 8-bit sRGB 256c 2.36KB 0.010u 0:00.010
Images/made_with_mac.gif=>/tmp/analyze_images/Images/made_with_mac-2.jpg[2] GIF 88x31 88x31+0+0 8-bit sRGB 256c 2.25KB 0.010u 0:00.010
Images/made_with_mac.gif=>/tmp/analyze_images/Images/made_with_mac-3.jpg[3] GIF 88x31 88x31+0+0 8-bit sRGB 256c 2.22KB 0.010u 0:00.010
Images/made_with_mac.gif=>/tmp/analyze_images/Images/made_with_mac-4.jpg[4] GIF 88x31 88x31+0+0 8-bit sRGB 256c 2.22KB 0.010u 0:00.010
Images/made_with_mac.gif=>/tmp/analyze_images/Images/made_with_mac-5.jpg[5] GIF 88x31 88x31+0+0 8-bit sRGB 256c 2.28KB 0.010u 0:00.010
Images/made_with_mac.gif=>/tmp/analyze_images/Images/made_with_mac-6.jpg[6] GIF 88x31 88x31+0+0 8-bit sRGB 256c 2.38KB 0.010u 0:00.010
Images/made_with_mac.gif=>/tmp/analyze_images/Images/made_with_mac-7.jpg[7] GIF 88x31 88x31+0+0 8-bit sRGB 256c 2.41KB 0.010u 0:00.010
Images/made_with_mac.gif=>/tmp/analyze_images/Images/made_with_mac-8.jpg[8] GIF 88x31 88x31+0+0 8-bit sRGB 256c 2.38KB 0.010u 0:00.010
Images/made_with_mac.gif=>/tmp/analyze_images/Images/made_with_mac-9.jpg[9] GIF 88x31 88x31+0+0 8-bit sRGB 256c 2.28KB 0.010u 0:00.019
Images/made_with_mac.gif=>/tmp/analyze_images/Images/made_with_mac-10.jpg[10] GIF 88x31 88x31+0+0 8-bit sRGB 256c 2.22KB 0.010u 0:00.019
Images/made_with_mac.gif=>/tmp/analyze_images/Images/made_with_mac-11.jpg[11] GIF 88x31 88x31+0+0 8-bit sRGB 256c 2.22KB 0.020u 0:00.019
Images/made_with_mac.gif=>/tmp/analyze_images/Images/made_with_mac-12.jpg[12] GIF 88x31 88x31+0+0 8-bit sRGB 256c 2.25KB 0.020u 0:00.019
Images/made_with_mac.gif=>/tmp/analyze_images/Images/made_with_mac-13.jpg[13] GIF 88x31 88x31+0+0 8-bit sRGB 256c 2.36KB 0.020u 0:00.019
Images/made_with_mac.gif=>/tmp/analyze_images/Images/made_with_mac-14.jpg[14] GIF 88x31 88x31+0+0 8-bit sRGB 256c 2.4KB 0.020u 0:00.019

Informazioni sui file per made_with_mac.gif:

me@ubuntu:~/testdir$ file Images/made_with_mac.gif
Images/made_with_mac.gif: GIF image data, version 89a, 88 x 31

L'elenco di directory per Images/made_with_mac.gif:

me@ubuntu:~/testdir$ ls -ls Images/made_with_mac.gif
12 -rw-rw-r-- 1 me me 11372 Dec 29 18:53 Images/made_with_mac.gif

Un conteggio usando sum di /tmp/analyze_images/Images/:

me@ubuntu:~/testdir$ sum /tmp/analyze_images/Images/* | sort
11875     3 /tmp/analyze_images/Images/made_with_mac-13.jpg
11875     3 /tmp/analyze_images/Images/made_with_mac-1.jpg
21853     3 /tmp/analyze_images/Images/made_with_mac-6.jpg
21853     3 /tmp/analyze_images/Images/made_with_mac-8.jpg
28311     3 /tmp/analyze_images/Images/made_with_mac-12.jpg
28311     3 /tmp/analyze_images/Images/made_with_mac-2.jpg
34223     3 /tmp/analyze_images/Images/made_with_mac-0.jpg
41967     3 /tmp/analyze_images/Images/made_with_mac-14.jpg
47849     3 /tmp/analyze_images/Images/made_with_mac-5.jpg
47849     3 /tmp/analyze_images/Images/made_with_mac-9.jpg
48702     3 /tmp/analyze_images/Images/made_with_mac-11.jpg
48702     3 /tmp/analyze_images/Images/made_with_mac-3.jpg
49836     3 /tmp/analyze_images/Images/made_with_mac-10.jpg
49836     3 /tmp/analyze_images/Images/made_with_mac-4.jpg
65520     3 /tmp/analyze_images/Images/made_with_mac-7.jpg

Elenco di directory per /tmp/analyze_images/Images/:

me@ubuntu:~/testdir$ ls -ls /tmp/analyze_images/Images/*
4 -rw-rw-r-- 1 me me 2439 Jan 10 11:36 /tmp/analyze_images/Images/made_with_mac-0.jpg
4 -rw-rw-r-- 1 me me 2219 Jan 10 11:36 /tmp/analyze_images/Images/made_with_mac-10.jpg
4 -rw-rw-r-- 1 me me 2222 Jan 10 11:36 /tmp/analyze_images/Images/made_with_mac-11.jpg
4 -rw-rw-r-- 1 me me 2249 Jan 10 11:36 /tmp/analyze_images/Images/made_with_mac-12.jpg
4 -rw-rw-r-- 1 me me 2360 Jan 10 11:36 /tmp/analyze_images/Images/made_with_mac-13.jpg
4 -rw-rw-r-- 1 me me 2404 Jan 10 11:36 /tmp/analyze_images/Images/made_with_mac-14.jpg
4 -rw-rw-r-- 1 me me 2360 Jan 10 11:36 /tmp/analyze_images/Images/made_with_mac-1.jpg
4 -rw-rw-r-- 1 me me 2249 Jan 10 11:36 /tmp/analyze_images/Images/made_with_mac-2.jpg
4 -rw-rw-r-- 1 me me 2222 Jan 10 11:36 /tmp/analyze_images/Images/made_with_mac-3.jpg
4 -rw-rw-r-- 1 me me 2219 Jan 10 11:36 /tmp/analyze_images/Images/made_with_mac-4.jpg
4 -rw-rw-r-- 1 me me 2281 Jan 10 11:36 /tmp/analyze_images/Images/made_with_mac-5.jpg
4 -rw-rw-r-- 1 me me 2384 Jan 10 11:36 /tmp/analyze_images/Images/made_with_mac-6.jpg
4 -rw-rw-r-- 1 me me 2412 Jan 10 11:36 /tmp/analyze_images/Images/made_with_mac-7.jpg
4 -rw-rw-r-- 1 me me 2384 Jan 10 11:36 /tmp/analyze_images/Images/made_with_mac-8.jpg
4 -rw-rw-r-- 1 me me 2281 Jan 10 11:36 /tmp/analyze_images/Images/made_with_mac-9.jpg

Risposte:


2

È made_with_mac.gif e GIF animate? In tal caso, quando lo converti in un JPEG, è sufficiente prendere ciascun fotogramma della GIF e salvarli singolarmente come immagine JPEG.

Se desideri evitare questo, allora ci sono alcune soluzioni:

  1. È possibile aggiungere il -flatten opzione per il comando per appiattire i frame in un'unica immagine:

    convert -flatten -verbose Images/made_with_mac.gif /tmp/analyze_images/Images/made_with_mac.jpg
    
  2. È possibile aggiungere il -mosiac opzione per il comando per creare un'immagine JPEG mosaico basata sui fotogrammi della GIF:

    convert -mosaic -verbose Images/made_with_mac.gif /tmp/analyze_images/Images/made_with_mac.jpg
    
  3. Oppure puoi anche selezionare l'unico frame della GIF animata che vorresti salvare come JPEG in questo modo; nota che questo comando di esempio prenderà il settimo fotogramma della GIF e lo salverà come JPEG:

    convert -verbose Images/made_with_mac[7].gif /tmp/analyze_images/Images/made_with_mac7.jpg
    

1
Sì, è un'animazione GIF! Grazie!
Edward_178118

C'è un modo in uno script di shell per verificare se un .gif è un'animazione GIF? Perché in questo caso, penso che saltare il file per la conversione sarebbe il migliore.
Edward_178118

1
@ Edward_178118 Forse. Leggi su identify comando così come questa discussione qui sul sito Web ufficiale di ImageMagick .
JakeGould

Grazie! Questo dovrebbe funzionare perfettamente, dal momento che qualsiasi valore superiore a "1" sarebbe un'animazione.
Edward_178118
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.