Imagick::optimizeImageLayers
(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);
?>
参考
- Imagick::compareImageLayers() - 複数の画像の中で最大の境界範囲を返す
- Imagick::writeImages() - 画像あるいは画像シーケンスを書き込む
- Imagick::writeImage() - 指定した名前で画像を書き込む
+add a note
User Contributed Notes 1 note
f21 dot groups at gmail dot com ¶
11 years ago
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');