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 使用 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);

?>

添加注释

用户贡献注释 1 个注释

fortruth at mabang dot net
14 年前
延迟时间单位是微秒,当 100 为 1 秒时。
To Top