我想要做的是仅将动画 GIF 的第一帧保存在静态图像(非动画 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 循环(它永远不会死)。
不知道我在这里错过了什么。