PHP Conference Japan 2024

Imagick::setImageDelay

(PECL imagick 2, PECL imagick 3)

Imagick::setImageDelay設定影像延遲

說明

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

設定影像延遲。對於動畫影像,這是指在顯示下一幀之前,此影像幀應該顯示的時間長度。

可以針對影像中的每一幀個別設定延遲。

參數

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);

?>

新增註解

使用者提供的註解 1 則註解

fortruth at mabang dot net
14 年前
延遲時間單位是微秒,100 等於 1 秒
To Top