延迟时间单位是微秒,当 100 为 1 秒时。
(PECL imagick 2, PECL imagick 3)
Imagick::setImageDelay — 设置图像延迟
设置图像延迟。对于动画图像,这是显示图像帧的时间量,在显示下一帧之前。
延迟可以为图像中的每个帧单独设置。
delay
以“滴答”为单位表示的图像应显示的时间量。对于动画 GIF,每秒有 100 个滴答,因此值为 20 将是 20/100 秒,即 1/5 秒。
成功时返回 true
。
错误时抛出 ImagickException。
示例 #1 使用 Imagick::setImageDelay() 修改动画 GIF
<?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);
?>