私がやりたいことは、アニメーション 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 ループに入ることはありません (死ぬことはありません)。
ここで何を見逃したのかわかりません。