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 — Elimina porciones repetidas de imágenes para optimizarlas
Compara cada imagen con las formas de disposición del formato GIF de la imagen previa en la secuencia. Desde aquí se intenta seleccionar la imagen recortada más pequeña para reemplazar cada fotograma, mientras se preservan los resultados de la animación. Este método está disponible si Imagick ha sido compilado con la versión 6.2.9 o superior de ImageMagick.
Devuelve true
en caso de éxito.
Lanza ImagickException en caso de error.
Ejemplo #1 Usar Imagick::optimizeImageLayers()
Leer, optimizar y escribir una imagen GIF
<?php
/* crear un nuevo objeto Imagick */
$im = new Imagick("prueba.gif");
/* optimizar las capas de la imagen */
$im->optimizeImageLayers();
/* escribir la imagen */
$im->writeImages("prueba_optimizada.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');