PHP 8.4.1 Released!

Imagick::optimizeImageLayers

(PECL imagick 2, PECL imagick 3)

Imagick::optimizeImageLayers画像の繰り返し部分を削除して最適化する

説明

public Imagick::optimizeImageLayers(): bool

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);
?>

参考

add a note

User Contributed Notes 1 note

up
0
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');
To Top