在 imagick 3.x 中(尚未檢查 2.x),這會傳回 imagemagick 物件,而不是布林值。
<?php
$image = new Imagick('myanimation.gif');
$image = $image->optimizeImageLayers(); //不會傳回布林值!
$image->writeImage('optimized.gif');
(PECL imagick 2, PECL imagick 3)
Imagick::optimizeImageLayers — 移除影像中重複的部分以進行最佳化
比較序列中每個影像與前一個影像的 GIF 處置形式。藉此嘗試選擇最小的裁切影像來取代每個影格,同時保留動畫的結果。如果 Imagick 已針對 ImageMagick 6.2.9 或更新版本進行編譯,則可以使用此方法。
此函式沒有參數。
成功時傳回 true
。
錯誤時擲回 ImagickException。
範例 1 使用 Imagick::optimizeImageLayers()
讀取、最佳化和寫入 GIF 影像
<?php
/* 建立新的 imagick 物件 */
$im = new Imagick("test.gif");
/* 最佳化影像圖層 */
$im->optimizeImageLayers();
/* 將影像寫回 */
$im->writeImages("test_optimized.gif", true);
?>
在 imagick 3.x 中(尚未檢查 2.x),這會傳回 imagemagick 物件,而不是布林值。
<?php
$image = new Imagick('myanimation.gif');
$image = $image->optimizeImageLayers(); //不會傳回布林值!
$image->writeImage('optimized.gif');