PHP 8.4.0 RC4 available for testing

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() - Записывает изображение по указанному имени файла

Добавить

Примечания пользователей 1 note

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