PHP Conference Japan 2024

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,使其帧以可变速度播放,
// 从显示 50ms 到 0ms 不等,这将导致大多数浏览器跳过帧。
$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