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