簡體   English   中英

使用PHP的ImageMagick API制作動畫GIF

[英]Make an animated GIF with PHP's ImageMagick API

我可以在我的操作系統中輕松完成

convert -delay 1/1 -loop 0 *.gif animated.gif

但我無法在PHP API中找到如何做到這一點。 沒有調整大小或任何需要的東西,我只有一組需要動畫的幀。

雖然我不是PHP專家,但我知道這個問題並不太難。 你想要做的是創建一個可以附加幀的Imagick對象。 對於每個幀,您可以更改定時等參數。

假設您正在使用從基本Web表單上傳的圖像,我編寫了一個基本示例,循環使用名稱“image0”上傳的圖像,其中“0”上升到包含許多文件。 您當然可以通過在固定文件名或其他方面使用相同的方法來添加圖像。

$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();

這個例子創建了一個Imagick對象,它將成為我們的GIF。 然后循環上傳到服務器的文件並首先讀取每個文件(但請記住,這種技術依賴於圖像按上述方式命名),其次是獲取延遲值,第三,它附加到即將到來的GIF。 這是基本的想法,它會產生你想要的東西(我希望)。

但是有很多篡改,你的配置可能看起來不同。 我總是發現php.net的Imagick API引用很糟糕 ,但它仍然很好用,我不時用它來引用標准的ImageMagick中的東西。

希望這有點與你追求的相符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM