(PECL imagick 2,PECL imagick 3)
Imagick::setImageTicksPerSecond — 設定影像的每秒滴答數
調整動畫影像的影格顯示時間量。
注意:
對於動畫 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);
?>