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, с предыдущим изображением в последовательности. Исходя из этого, функция пытается выбрать наименьшее обрезанное изображение для замены каждого кадра, сохраняя при этом результаты анимации. Метод доступен, если модуль 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);
?>
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');