PHP Conference Japan 2024

Imagick::getImageIterations

(PECL imagick 2, PECL imagick 3)

Imagick::getImageIterations获取图像迭代次数

描述

public Imagick::getImageIterations(): int

获取图像迭代次数。

参数

此函数没有参数。

返回值

返回图像迭代次数,以整数形式表示。

错误/异常

发生错误时抛出 ImagickException。

添加注释

用户贡献注释 2 个注释

3
admin at zasmeshi dot ru
7 年前
如果您想获取动画(GIF)帧的数量,您需要使用 Imagick::getNumberImages()
2
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

// 作者:[email protected]

// Imagick 类型
// ---------------------------------------------

$imagick_type = new Imagick();

// 打开文件
// ---------------------------------------------

$file_to_grab = "image_workshop_directory/test.gif";

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

// 获取文件
// ---------------------------------------------

$imagick_type->readImageFile($file_handle_for_viewing_image_file);

// 获取图像迭代次数
// (检测动画图像与非动画图像)
// ---------------------------------------------

$image_iterations = $imagick_type->getImageIterations();

// 打印解释后的迭代值
// ---------------------------------------------

if($image_iterations == 1)
{
print(
"$file_to_grab *是* 动画图像.");
}
else
{
print(
"$file_to_grab *不是* 动画图像.");
}

?>
To Top