In imagick 3.x (have not checked 2.x), this returns an imagemagick object and not a boolean.
<?php
$image = new Imagick('myanimation.gif');
$image = $image->optimizeImageLayers(); //Does not return a boolean!
$image->writeImage('optimized.gif');
(PECL imagick 2, PECL imagick 3)
Imagick::optimizeImageLayers — 画像の繰り返し部分を削除して最適化する
GIF 形式の画像を、シーケンス内のひとつ前の画像と比較します。 必要最小限の画像で各フレームを置き換え、結果のアニメーションはそのままとなるようにします。 このメソッドは、ImageMagick バージョン 6.2.9 以降で Imagick をコンパイルした場合に使用可能です。
この関数にはパラメータはありません。
成功した場合に true
を返します。
エラー時に ImagickException をスローします。
例1 Imagick::optimizeImageLayers() の使用法
GIF 画像を読み込み、最適化して書き出します。
<?php
/* 新しい imagick オブジェクトを作成します */
$im = new Imagick("test.gif");
/* 画像のレイヤを最適化します */
$im->optimizeImageLayers();
/* 画像を書き戻します */
$im->writeImages("test_optimized.gif", true);
?>
In imagick 3.x (have not checked 2.x), this returns an imagemagick object and not a boolean.
<?php
$image = new Imagick('myanimation.gif');
$image = $image->optimizeImageLayers(); //Does not return a boolean!
$image->writeImage('optimized.gif');