我需要在PHP中將動畫GIF轉換爲靜態。我的意思是使用其第一幀。任何想法如何做到這一點?如何將動畫GIF轉換爲PHP中的靜態?
2
A
回答
4
「剝離」的動畫GIF可以做到通過將其轉換爲另一種格式和然後再回來。對於這種「其他格式」,PNG是一個很好的候選者,因爲它不像JPEG那樣是無損的。使用PHP的GD功能,並輸出PNG代替GIF:
header('Content-type: image/png');
imagepng(imagecreatefromgif($file));
這可能工作(沒有測試)如果PHP/GD不支持GIF動畫(我不認爲它);並且它會輸出GIF格式的圖像,不像上面的代碼片段:
header('Content-type: image/gif');
imagegif(imagecreatefromgif($file));
如果這是行不通的,而在GIF格式的輸出是必不可少的,這將:
$img1 = imagecreatefromgif($file);
$size = getimagesize($img1);
$img2 = imagecreatetruecolor($size[0], $size[1]);
imagecopy($img2, $img1, 0, 0, 0, 0, $size[0], $size[1]);
header('Content-type: image/gif');
imagegif($img2);
2
我能想到的(不是很可愛的),最好的辦法是將GIF轉換成PNG/JPEG,然後將其再次GIF,:P
試試這個轉換;) http://gallery.menalto.com/node/13206
希望這可以幫助你
+0
顯然,如果這是您選擇做的事,轉換爲PNG是更好的選擇。但是,由於PHP/GD似乎不支持動畫GIF,因此將它「轉換」爲GIF(例如'imagegif(imagecreatefromgif($ file));')可能會起作用。 – You 2010-08-01 00:00:52
3
看看http://php.net/manual/en/function.imagecreatefromgif.php
檢查從最大勞埃德的代碼片段。
1
可以使用的ImageMagick ,還是隻有gd? – JAL 2010-07-31 23:49:56
到目前爲止,你有什麼嘗試? – Charles 2010-07-31 23:51:35