Imagick::setImageTicksPerSecond

(PECL imagick 2.0.0)

Imagick::setImageTicksPerSecond画像の ticks-per-second を設定する

説明

Imagick::setImageTicksPerSecond ( int $ticks_per_second ) : bool

アニメーション画像のフレームを表示する時間を調整します。

注意:

アニメーション GIF の場合、この関数は秒間の 'image ticks' の数は変更しません。常に 100 です。 そのかわりに、'ticks per second' を変更し、フレームを表示する時間を変更したように見せます。

たとえば、各フレームを 20 ticks (1/5 秒) ずつ表示させるようにしているアニメーション GIF に対して、この関数の引数に 50 を渡して呼び出すと、 各フレームの表示時間を 40 ticks (2/5 秒) に変更します。 その結果、元の半分の速さで表示されるようになります。

パラメータ

ticks_per_second

画像を表示させる時間を ticks per second で表した値。

返り値

成功した場合に TRUE を返します。

例1 Imagick::setImageTicksPerSecond() によるアニメーション GIF の変更

<?php

// アニメーション 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);

?>