2010-08-27 11 views
6

Estoy buscando una manera de detectar la velocidad de fotogramas (promedio) de un GIF animado usando Linux. La clase Imagick de PHP parece proporcionar esta funcionalidad, pero prefiero evitar la instalación de una gran cantidad de bibliotecas para que funcione.¿Cómo puedo detectar los tics de un GIF animado por segundo?

http://www.php.net/manual/en/function.imagick-getimagetickspersecond.php

¿Hay una manera simple de hacer esto?

+7

¿Cómo es una biblioteca –

+2

@Bears: Es un hecho poco conocido que la biblioteca imagemagick pesa aproximadamente 2,106 lbs (cuando el código fuente se imprime en el papel 8.5x11in peso pesado en 12-pt con 1" márgenes en cada lado ;-) – Josh

+0

@ Josh: solo o impresión a doble cara o el doble? ¿Qué fuente? _INKJET o láser ??? _ GET con ella el hombre! –

Respuesta

8

creo ImageMagick realmente es su mejor apuesta.

Esto es lo que un identify filename.gif en un GIF animado que parece:

gif.gif[1] GIF 350x350 350x350+0+0 8-bit PseudoClass 256c 145KB 0.000u 0:00.003 
gif.gif[2] GIF 350x350 350x350+0+0 8-bit PseudoClass 256c 145KB 0.000u 0:00.006 
gif.gif[3] GIF 350x350 350x350+0+0 8-bit PseudoClass 256c 145KB 0.000u 0:00.010 

esto no le da la velocidad de cuadro - que es buena , porque GIF animados no tienen una velocidad de fotogramas mundial , tienen uno individual entre fotogramas.

+0

¡Incluso mejor! Esto es lo que buscaba. –

5

Puede personalizar el formato de información de lo que ImageMagick de identify debe mostrar a usted:

identify \ 
     -format "%T ticks: %f: Frame[%s] %m %wx%h %P%O %r %z-bit\n" \ 
     anim.gif 

Que debe hacer el truco.

Ejemplo de salida: "una tonelada"

50 ticks: anim.gif: Frame[0] GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit 
10 ticks: anim.gif: Frame[1] GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit 
10 ticks: anim.gif: Frame[2] GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit 
10 ticks: anim.gif: Frame[3] GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit 
10 ticks: anim.gif: Frame[4] GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit 
50 ticks: anim.gif: Frame[5] GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit 
10 ticks: anim.gif: Frame[6] GIF 1x1 128x128+0+0 PseudoClass sRGB Matte 8-bit 
10 ticks: anim.gif: Frame[7] GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit 
10 ticks: anim.gif: Frame[8] GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit 
10 ticks: anim.gif: Frame[9] GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit 
10 ticks: anim.gif: Frame[10] GIF 128x128 128x128+0+0 PseudoClass sRGB Matte 8-bit