PHP Conference Japan 2024

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)) {
// 修改影格以顯示為目前顯示時間的兩倍
$imagick->setImageTicksPerSecond(50);
} else {
// 修改影格以顯示為目前顯示時間的一半
$imagick->setImageTicksPerSecond(200);
}

$frameCount++;
}

$imagick = $imagick->deconstructImages();

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

?>

新增註解

使用者貢獻註解

此頁面沒有使用者貢獻註解。
To Top