PHPのお勉強!

PHP TOP

Imagick::setImageDelay

(PECL imagick 2, PECL imagick 3)

Imagick::setImageDelay画像の遅延を設定する

説明

public Imagick::setImageDelay(int $delay): bool

画像の遅延を設定します。アニメーション画像の場合、この値は、 今のフレームから次のフレームに移動するまでの時間になります。

パラメータ

delay

画像を表示させる時間を 'ticks' で表した値。 アニメーション GIF の場合は 1 秒間に 100 ticks なので、 20 を設定すると 20/100 秒つまり 1/5 秒ということになります。

戻り値

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

エラー / 例外

エラー時に ImagickException をスローします。

例1 Imagick::setImageDelay() を使ったアニメーション GIF の変更

<?php

// アニメーション GIF を変更し、各フレームの表示時間を 50ms から 0ms に徐々に変えていきます。
// 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);

?>

add a note

User Contributed Notes 1 note

up
-2
fortruth at mabang dot net
14 years ago
the delay time unit is micro-second when 100 is 1s