Código de PHP - Función para saber si un gif es animado con PHP

Imágen de perfil

Función para saber si un gif es animado con PHPgráfica de visualizaciones


PHP

Publicado el 04 de Noviembre del 2013 por Xavi
1.800 visualizaciones desde el 04 de Noviembre del 2013. Una media de 14 por semana
Código que muestra como saber si un gif es animado por sus frames.
Devuelve 1 en casa de que la imagen disponga de frames.

Versión 1

Publicado el 04 de Noviembre del 2013gráfica de visualizaciones de la versión: Versión 1
1.801 visualizaciones desde el 04 de Noviembre del 2013. Una media de 14 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
/**
 * Thanks to ZeBadger for original example, and Davide Gualano for pointing me to it
 * Original at http://it.php.net/manual/en/function.imagecreatefromgif.php#59787
 *
 * Un gif animado contiene multiples "frames", cada "frame" tiene una cabecera
 * copuesta por:
 * Una secuenda de 4 bytes (\x00\x21\xF9\x04)
 * 4 bytes variables
 * Una secuenda de 2-bytes (\x00\x2C)
 *
 * Con esta funcion se lee el archivo entero y buscamos que haya por lo menos
 * dos cabeceras de esta trama.
 *
 * Funcion que devuelve 1 si el gif es animado
 * Tiene que recibir el nombre del archivo con su ubicación fisica en el disco
 * donde se ejecuta el php.
 **/
function is_animated_gif($filename)
{
    $raw = file_get_contents( $filename );
 
    $offset = 0;
    $frames = 0;
    while ($frames < 2)
    {
        $where1 = strpos($raw, "\x00\x21\xF9\x04", $offset);
        if ( $where1 === false )
        {
            break;
        }else{
            $offset = $where1 + 1;
            $where2 = strpos( $raw, "\x00\x2C", $offset );
            if ( $where2 === false )
            {
                break;
            }else{
                if ( $where1 + 8 == $where2 )
                {
                    $frames ++;
                }
                $offset = $where2 + 1;
            }
        }
    }
    return $frames > 1;
}
echo "<br>".is_animated_gif("imagen.gif");
?>



Comentarios sobre la versión: Versión 1 (0)


No hay comentarios
 

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s2526