Même si je ne suis pas un expert PHP, je sais que ce problème n'est pas trop difficile. Ce que vous voulez faire est de créer un objet Imagick auquel vous pouvez ajouter vos images. Avec chaque image, vous pouvez modifier les paramètres comme le timing etc.
En supposant que vous travaillez avec des images téléchargées à partir d'un formulaire Web de base, j'ai écrit un exemple de base qui passe en revue les images qui ont été téléchargées avec un nom de " image0 ", où" 0 "monte à autant de fichiers sont inclus. Vous pouvez naturellement ajouter des images en utilisant les mêmes méthodes sur des noms de fichiers fixes ou autres.
$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();
Cet exemple crée un objet Imagick qui deviendra notre GIF. Les fichiers qui ont été téléchargés sur le serveur sont ensuite bouclés et chacun est d'abord lu (souvenez-vous cependant que cette technique repose sur le fait que les images sont nommées comme je l'ai décrit ci-dessus), deuxièmement, il reçoit une valeur de retard et troisièmement le GIF-à-être. C'est l'idée de base, et cela produira ce que vous recherchez (j'espère).
Mais il y a beaucoup à trafiquer, et votre configuration peut être différente. J'ai toujours trouvé la référence php.net Imagick API comme un genre de sucer, mais c'est toujours agréable à utiliser et je l'utilise de temps en temps pour référencer des choses à partir de l'ImageMagick standard.
Espérons que cela correspond un peu à ce que vous recherchiez.
Pour commencer, vous pouvez utiliser [l'opérateur d'exécution] (http://php.net/manual/fr/language.operators.execution.php) (en arrière-plan): '\' convert -delay 1/1 -loop 0 * .gif animated.gif \ ''. – hakre
ou le 'exec()' mais c'est très brouillon et j'ai déclaré que je veux utiliser l'API – jdborg
Oui, c'est plus un commentaire que la réponse réelle. Que dit le manuel? Il devrait offrir une interface je pense. – hakre