我使用PHP和Imagick使用下面的代碼將採集多個圖像到一個GIF動畫寫一些代碼GIF文件大小:減少使用ImageMagick和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);
?>
的背景圖像和「世界,你好」都應該每幀出現。正如你所看到的,我正在將文本圖像,背景圖像和圖層合併到一個框架中。圖層圖像包含某種具有透明背景的圖形,所以我提供的背景和文本應該出現在這種情況下。但是,問題在於動畫gif「result.gif」的文件大小,對於30幀圖像來說大約爲3 MB。
問題是,如何減少文件大小而不影響質量呢?我願意接受包括在系統上運行命令行工具的答案。
感謝
這並沒有很多幫助。生成的文件大小爲3 MB,這正是我想要減少的格式 – Maverick 2011-03-26 11:20:53