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 — Remove partes repetidas de imagens para otimizar
Compara cada imagem com as formas dispostas em GIF da imagem anterior na sequência. A partir disso, tenta selecionar a menor imagem recortada para substituir cada quadro, preservando os resultados da animação. Este método estará disponível se a extensão Imagick tiver sido compilada com a ImageMagick versão 6.2.9 ou superior.
Esta função não possui parâmetros.
Retorna true
em caso de sucesso.
Lança uma exceção ImagickException em caso de erro.
Exemplo #1 Usando Imagick::optimizeImageLayers()
Lendo, otimizando e gravando uma imagem GIF
<?php
/* Cria novo objeto Imagick */
$im = new Imagick("test.gif");
/* otimizar as camadas da imagem */
$im->optimizeImageLayers();
/* grava a imagem de volta */
$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');