延遲時間單位是微秒,100 等於 1 秒
(PECL imagick 2, PECL imagick 3)
Imagick::setImageDelay — 設定影像延遲
設定影像延遲。對於動畫影像,這是指在顯示下一幀之前,此影像幀應該顯示的時間長度。
可以針對影像中的每一幀個別設定延遲。
delay
以「ticks」表示的影像應顯示的時間長度。對於動畫 GIF,每秒有 100 ticks,因此值 20 將是 1/5 秒 (20/100 秒)。
成功時返回 true
。
發生錯誤時拋出 ImagickException。
範例 #1 使用 Imagick::setImageDelay() 修改動畫 Gif
<?php
// 修改動畫 Gif,使其影格以變速播放,
// 顯示時間在 50 毫秒到 0 毫秒之間變化,這將導致影格
// 在大多數瀏覽器中被跳過。
$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);
?>