Si bien no soy un experto en PHP, sé que este problema no es demasiado difícil. Lo que quiere hacer es crear un objeto Imagick al que pueda agregar sus marcos. Con cada fotograma puede cambiar parámetros como el tiempo, etc.
Suponiendo que está trabajando con imágenes que se cargan desde un formulario web básico, he escrito un ejemplo básico que recorre las imágenes cargadas con un nombre de " image0 ", donde" 0 "sube a pesar de que se incluyen muchos archivos. Naturalmente, simplemente puede agregar imágenes utilizando los mismos métodos en nombres de archivos fijos o lo que sea.
$GIF = new Imagick();
$GIF->setFormat("gif");
for ($i = 0; $i < sizeof($_FILES); ++$i) {
$frame = new Imagick();
$frame->readImage($_FILES["image$i"]["tmp_name"]);
$frame->setImageDelay(10);
$GIF->addImage($frame);
}
header("Content-Type: image/gif");
echo $GIF->getImagesBlob();
Este ejemplo crea un objeto Imagick que es lo que se convertirá en nuestro GIF. Los archivos que se cargaron al servidor se bifurcan y se lee primero cada uno (recuerde, sin embargo, que esta técnica se basa en que las imágenes se nombran como describí anteriormente), en segundo lugar, obtiene un valor de retardo y, en tercer lugar, se agrega a el GIF-a-ser. Esa es la idea básica, y producirá lo que estás buscando (espero).
Pero hay mucho que manipular, y su configuración puede verse diferente. Siempre encontré la referencia php.net Imagick API para chupar, pero aún así es bueno tenerla y la uso de vez en cuando para hacer referencia a cosas del ImageMagick estándar.
Espero que esto coincida con lo que estabas buscando.
Para empezar, puede usar el [operador de ejecución] (http://php.net/manual/en/language.operators.execution.php) (patillas): '\' convert-delay 1/1 -loop 0 * .gif animated.gif \ ''. – hakre
o el 'exec()' pero eso es muy complicado y he declarado que quiero usar la API – jdborg
Sí, es más un comentario que la respuesta real. ¿Qué dice el manual? Debería ofrecer una interfaz, creo. – hakre