CakeFest 2024: The Official CakePHP Conference

Imagick::optimizeImageLayers

(PECL imagick 2, PECL imagick 3)

Imagick::optimizeImageLayersУдаляет повторяющиеся части изображений для оптимизации

Описание

public Imagick::optimizeImageLayers(): bool

Сравнивает каждое изображение, расположенное в формате 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::compareImageLayers() - Возвращает максимальную ограничивающую область между изображениями
  • Imagick::writeImages() - Записывает изображение или последовательность изображений
  • Imagick::writeImage() - Записывает изображение по указанному имени файла

add a note

User Contributed Notes 1 note

up
0
f21 dot groups at gmail dot com
10 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