Imagick::setImageDelay

(PECL imagick 2, PECL imagick 3)

Imagick::setImageDelayУстанавливает задержку изображения

Описание

public Imagick::setImageDelay(int $delay): bool

Устанавливает задержку изображения. Для анимированного изображения это количество времени, в течение которого этот кадр изображения должен отображаться до отображения следующего кадра.

Задержка может быть установлена индивидуально для каждого кадра в изображении.

Список параметров

delay

Количество времени, выраженное в 'тиках', для которого должно отображаться изображение. Для анимированных GIF-файлов есть 100 тиков в секунду, поэтому значение 20 будет равно 20/100 секунды, то есть 1/5 секунды.

Возвращаемые значения

Функция в случае успешной работы возвращает true.

Ошибки

Функция выбрасывает исключение ImagickException, если возникла ошибка.

Примеры

Пример #1 Изменить анимированный GIF с помощью Imagick::setImageDelay()

<?php

// Измените анимированный GIF, чтобы его кадры воспроизводились с переменной скоростью,
// варьируясь от показа в течение 50 мс до 0 мс,
// что приведёт к пропуску фрейма в большинстве браузеров.
$imagick = new Imagick(realpath("Test.gif"));
$imagick = $imagick->coalesceImages();

$frameCount = 0;

foreach (
$imagick as $frame) {
$imagick->setImageDelay((($frameCount % 11) * 5));
$frameCount++;
}

$imagick = $imagick->deconstructImages();

$imagick->writeImages("/path/to/save/output.gif", true);

?>

add a note

User Contributed Notes 1 note

up
-2
fortruth at mabang dot net
14 years ago
the delay time unit is micro-second when 100 is 1s
To Top