PHP 8.3.4 Released!

Imagick::setImageTicksPerSecond

(PECL imagick 2, PECL imagick 3)

Imagick::setImageTicksPerSecondУстанавливает продолжительность отображения кадра

Описание

public Imagick::setImageTicksPerSecond(int $ticks_per_second): bool

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

Замечание:

Для анимированных GIF-изображений эта функция не изменяет количество "тактов изображения" в секунду, которое всегда определяется как 100. Вместо этого она регулирует количество времени, в течение которого отображается кадр, чтобы имитировать изменение "тактов в секунду".

Например, для анимированного GIF-изображения, где каждый кадр отображается в течение 20 тактов (1/5 секунды), когда вызывается этот метод для каждого кадра этого изображения с аргументом 50, кадры корректируются и будут отображаться в течение 40 тактов (2/5 секунды) и анимация будет воспроизводиться с половиной исходной скорости.

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

ticks_per_second

Продолжительность, в течение которой должно отображаться изображение, выражается в тактах в секунду.

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

В случае успешной работы возвращает true.

Примеры

Пример #1 Изменение анимированного GIF-изображения с помощью Imagick::setImageTicksPerSecond()

<?php

// Изменение анимированного gif-изображения так, чтобы первая половина gif воспроизводилась с половинной скоростью,
// а вторая половина воспроизводилась с удвоенной скоростью.

$imagick = new Imagick(realpath("Test.gif"));
$imagick = $imagick->coalesceImages();

$totalFrames = $imagick->getNumberImages();

$frameCount = 0;

foreach (
$imagick as $frame) {
$imagick->setImageTicksPerSecond(50);

if (
$frameCount < ($totalFrames / 2)) {
// Измените кадр так, чтобы он отображался вдвое дольше, чем сейчас.
$imagick->setImageTicksPerSecond(50);
} else {
// Измените кадр так, чтобы он отображался вдвое меньше, чем сейчас.
$imagick->setImageTicksPerSecond(200);
}

$frameCount++;
}

$imagick = $imagick->deconstructImages();

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

?>

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top