Je suis en train d'écrire un code en utilisant PHP et Imagick qui rassemble plusieurs images en une seule image GIF animée en utilisant le code suivant:Réduire la taille du fichier GIF en utilisant ImageMagick et PHP
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
$anim = new Imagick();
for($i = 0; $i<=36; $i++) {
$bgImage = new Imagick('Background.gif');
$imagick = new Imagick("sw_layers-$i.gif");
$bgImage->setImageColorspace($imagick->getImageColorspace());
$bgImage->compositeImage($imagick, imagick::DISPOSE_PREVIOUS,0,0);
$draw = new ImagickDraw();
/*** set the fill color ***/
$draw->setFillColor(new ImagickPixel("orange"));
$draw->annotation(10, 10, 'Hello world');
$bgImage->drawImage($draw);
$anim->addImage($bgImage);
$anim->setFormat("gif");
$anim->setImageDispose(3);
$anim->setImageCompression(imagick::COMPRESSION_JPEG);
$anim->setImageCompressionQuality(50);
}
echo $anim->writeImages('Result.gif', true);
?>
L'image de fond et « Bonjour tout le monde » sont censés apparaît pour chaque image. Comme vous pouvez le voir, je joing l'image de texte, l'image de fond et le calque dans un seul cadre. l'image de calque contient une sorte de dessin avec un arrière-plan transparent, de sorte que l'arrière-plan et le texte fournis doivent apparaître dans ce cas. Cependant, le problème réside dans la taille de fichier du gif animé "result.gif" qui s'avère être d'environ 3 Mo pour une image de 30 images.
La question est, comment puis-je réduire la taille du fichier sans affecter la qualité autant? Je suis ouvert aux réponses, y compris l'exécution d'un outil de ligne de commande sur le système.
Merci
Cela n'a pas aidé beaucoup. La taille du fichier qui en résulte est de 3 Mo ce qui est ce que j'essaie de réduire – Maverick