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 使用 Imagick::setImageTicksPerSecond() 修改动画 Gif

<?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)) {
// 修改帧以使其显示时间是目前的 2 倍
$imagick->setImageTicksPerSecond(50);
} else {
// 修改帧以使其显示时间是目前的一半
$imagick->setImageTicksPerSecond(200);
}

$frameCount++;
}

$imagick = $imagick->deconstructImages();

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

?>

添加备注

用户贡献的备注

此页面没有用户贡献的备注。
To Top