Imagick::getIteratorIndex

(PECL imagick 2, PECL imagick 3)

Imagick::getIteratorIndex获取当前活动图像的索引

描述

public Imagick::getIteratorIndex(): int

返回 Imagick 对象中当前活动图像的索引。此方法在 Imagick 针对 ImageMagick 6.2.9 或更高版本编译时可用。

参数

此函数没有参数。

返回值

返回一个整数,包含图像在堆栈中的索引。

错误/异常

在发生错误时抛出 ImagickException。

示例

示例 #1 使用 Imagick::getIteratorIndex()

创建图像,设置和获取迭代器索引

<?php
$im
= new Imagick();
$im->newImage(100, 100, new ImagickPixel("red"));
$im->newImage(100, 100, new ImagickPixel("green"));
$im->newImage(100, 100, new ImagickPixel("blue"));

$im->setIteratorIndex(1);
echo
$im->getIteratorIndex();
?>

参见

添加注释

用户贡献的注释 2 notes

1
Michael O&#39;Connell
8 年前
这还将检索 Imagick 实例当前所在的哪个多页文档(例如 PDF、PS)文件的页码。对于 PDF,默认情况下似乎设置为最后一页。
0
holdoffhunger at gmail dot com
12 年前
ImageMagick 函数的 getIteratorIndex 函数适用于任何类型的图像,但它是为测量动画 .gif 文件中的帧数而构建的。对于非动画图像文件,例如常规的 .bmp 或 .jpg 文件,此函数将始终返回数字 '0',这意味着只有一个帧。此函数的计数从零开始,因此具有五个不同帧的 .gif 文件将对此返回 '4'。高度重复,但迷幻的动画 GIF 通常在 10 到 30 帧之间,但仅仅是将视频片段转换为数据文件的 .gif 文件可能具有数百帧。

根据维基百科(在“图形交换格式”文章中),动画 GIF 图像使用 GIF 标准“允许文件中的各种图像(帧)以时间延迟绘制”。此函数不会获取每个帧之间延迟的时间量,但它会提供 .gif 文件中唯一帧的数量。这将告诉你动画的复杂程度或简单程度。

'getIteratorIndex' 函数对你不起作用吗?尝试使用 'getImageIndex' 函数,它会产生完全相同的结果。

一些示例代码

<?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_iterator_index = $imagick_type->getIteratorIndex();

// 打印图像类型值
// ---------------------------------------------

print(".GIF 文件中唯一帧的数量: $image_iterator_index");

?>
To Top