array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'imagick.setimagedelay.php', 1 => 'Imagick::setImageDelay', ), 'up' => array ( 0 => 'class.imagick.php', 1 => 'Imagick', ), 'prev' => array ( 0 => 'imagick.setimagecompressionquality.php', 1 => 'Imagick::setImageCompressionQuality', ), 'next' => array ( 0 => 'imagick.setimagedepth.php', 1 => 'Imagick::setImageDepth', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/imagick/imagick/setimagedelay.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PECL imagick 2, PECL imagick 3)
Imagick::setImageDelay — Устанавливает задержку изображения
Устанавливает задержку изображения. Для анимированного изображения это количество времени, в течение которого этот кадр изображения должен отображаться до отображения следующего кадра.
Задержка может быть установлена индивидуально для каждого кадра в изображении.
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);
?>