Es un poco feo tener que pasarle el $fileName, pero no ví que se guardase en ningún lado de la clase y no quería tocarla.
Código PHP:
public function animated_gif($fileName)
{
if($this->_imageType == IMAGETYPE_GIF){
if(!($fh = file_get_contents($fileName))){
break;
}
$reg_exp='#\x00\x21\xF9\x04.{4}\x00\x2C#s';
if(preg_match($reg_exp, $fh, $matches)){
$head=$matches[0];
}
$body= preg_split($reg_exp, $fh);
if(count($body>1) and isset($head)){
foreach ($body as $key => $value){
if($key!=0){
$img=imagecreatefromstring($body[0].$head.$value);
if(imagegif ($img, 'probando'.$key.'.gif')) echo '- Se ha creado el frame '.$key.'<br>';
}
}
}
}
}
Unas observaciónes:
-Por lo que leí en el manual algunos gif guardados desde Adobe CS5 (Vaya fastidio que yo lso creo ahí
)cambia el encabezado por lo que también habría que cambiar esa expresión regular. Está posteada en createimagefromgif del manual, pero aún no lo he probado.
-Creo que voy a tener que añadir un copymerge() porque hay gif que no cambian toda la capa sino que dejan un fondo y animan sólo una. Al separar esas partes del fondo se ve raro obviamente.
P.E:
Bien:
http://www.pixeljoint.com/files/icons/vaderflow.gif
Rara:
http://www.gifmania.com/baloncesto/c...YABASKET_1.gif
Y leyendo y requeteleyendo parece que no es posible unir los frames con X tiempo.
...
Pero espero estar equivocado.
Saludos.