array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'imagick.setimagetickspersecond.php', 1 => 'Imagick::setImageTicksPerSecond', ), 'up' => array ( 0 => 'class.imagick.php', 1 => 'Imagick', ), 'prev' => array ( 0 => 'imagick.setimagescene.php', 1 => 'Imagick::setImageScene', ), 'next' => array ( 0 => 'imagick.setimagetype.php', 1 => 'Imagick::setImageType', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/imagick/imagick/setimagetickspersecond.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PECL imagick 2, PECL imagick 3)
Imagick::setImageTicksPerSecond — 画像の ticks-per-second を設定する
アニメーション画像のフレームを表示する時間を調整します。
注意:
アニメーション 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);
?>