0
我想要做的僅僅是在靜態圖像中保存動畫GIF的第一幀(非動畫gif)。如何使用Gmagick在靜態圖像中展示動畫GIF
使用Gmagick 1.1.2RC1和GraphicMagick 3.1.18
我看了帖子談論它的堆。有人說它在Gmagick的早期版本中工作,但沒有在新版本中。
這是我目前的測試代碼:
public function testAnimatedGifFrame()
{
$testAnimGif = $this->assets.'/animated.gif';
$im = new \Gmagick($testAnimGif);
$frameNumber = $im->getNumberImages();
$this->assertEquals(47, $frameNumber, 'The number of frame for the animated GIF should be 47');
// Select the first frame and save it
$frameIndex = 0;
$img = $im->coalesceImages();
foreach ($img as $frame) {
die('here');
$frameName = ++$frameIndex . '.gif';
$frame->writeImage($frameName);
}
}
的GIF動畫是由47幀,但使用coalesceImages()
時,該腳本是從來沒有foreach循環中獲取(它永遠不會死亡)。
不知道我在這裏錯過了什麼。
創建使用'GD'庫的gif副本會將gif保存爲靜態圖像,因爲您需要一個庫來調整w/frames的大小。 – Class
你確定$ img是一個數組嗎?如果它不是,foreach不會去「內部」。 – Uberfuzzy
另外,你確定它已經過去了嗎? – Uberfuzzy