(PECL imagick 2, PECL imagick 3)
Imagick::setImageTicksPerSecond — Establece los ticks por segundo de la imagen
Ajusta la cantidad de tiempo que se muestra un marco de una imagen animada.
Nota:
Para GIFs animados, esta función no cambia el número de 'ticks de imagen' por segundo, el cual está siempre definido como 100. En su lugar, ajusta la cantidad de tiempo que se muestra un marco para simular el cambio de 'ticks por segundo'.
Por ejemplo, para un GIF animado donde cada marco se muestra para 20 ticks (1/5 de un segundo), al llamar a este método en cada marco de esa imagen con un argumento de
50
, los marcos se ajustan para que se muestren por 40 ticks (2/5 de un segundo) y así, la animación se reproducirá a la mitad de la velocidad original.
ticks_per_second
La duración por la que imagen debería mostrarse expresada en ticks por segundo.
Devuelve true
en caso de éxito.
Ejemplo #1 Modificar un GIF animado con Imagick::setImageTicksPerSecond()
<?php
// Modificar un GIF animado para que la primera mitad del GIF se reproduzca a
// la mitad de su velocidad, y la segunda mitad se reproduzca al doble de su
// velocidad actual
$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)) {
// Modificar el marco para que se muestre al doble de lo actual
$imagick->setImageTicksPerSecond(50);
} else {
// Modificar el marco para que se muestre a la mitad de lo actual
$imagick->setImageTicksPerSecond(200);
}
$frameCount++;
}
$imagick = $imagick->deconstructImages();
$imagick->writeImages("/ruta/donde/guardar/salida.gif", true);
?>