PHP Conference Japan 2024

Imagick::getImageIterations

(PECL imagick 2, PECL imagick 3)

Imagick::getImageIterations取得影像的迭代次數

描述

public Imagick::getImageIterations(): int

取得影像的迭代次數。

參數

此函式沒有參數。

傳回值

以整數形式傳回影像的迭代次數。

錯誤/例外

發生錯誤時拋出 ImagickException。

新增註解

使用者貢獻註解 2 則註解

admin at zasmeshi dot ru
7 年前
如果您想取得動畫 (GIF) 影格的數量,您需要使用 Imagick::getNumberImages()
holdoffhunger at gmail dot com
12 年前
透過使用 PHP 函式 getImageIterations,您將會收到一個值,表示影像的動畫性質。對於非動畫的靜態影像 (如 .BMP 或 .JPEG 檔案),您將會收到「0」,而對於動畫影像 (如動畫 .GIF 檔案),您將會收到「1」。

在大量使用後,我一直無法從此函式取得任何其他結果。ImageMagick 使用者群組中有一些討論說,迭代次數應該表示動畫 .Gif 檔案重複自身的次數。不過,有可能是現代瀏覽器將值預設為無限大,或者此 ImageMagick 功能僅在 Linux 命令列中可用。在此討論群組中查看更多資訊:http://studio.imagemagick.org/pipermail/magick-users/2002-October/005814.html

以下是一些範例程式碼

<?php

// Author: holdoffhunger@gmail.com

// Imagick Type
// ---------------------------------------------

$imagick_type = new Imagick();

// Open File
// ---------------------------------------------

$file_to_grab = "image_workshop_directory/test.gif";

$file_handle_for_viewing_image_file = fopen($file_to_grab, 'a+');

// Grab File
// ---------------------------------------------

$imagick_type->readImageFile($file_handle_for_viewing_image_file);

// Get Image Iterations
// (Detect Animated Image Versus Non-Animated Image)
// ---------------------------------------------

$image_iterations = $imagick_type->getImageIterations();

// Print Iteration Value Interpreted
// ---------------------------------------------

if($image_iterations == 1)
{
print(
"$file_to_grab *IS* an animated image.");
}
else
{
print(
"$file_to_grab *IS NOT* an animated image.");
}

?>
To Top