如果您想获取动画(GIF)帧的数量,您需要使用 Imagick::getNumberImages()
(PECL imagick 2, PECL imagick 3)
Imagick::getImageIterations — 获取图像迭代次数
此函数没有参数。
返回图像迭代次数,以整数形式表示。
发生错误时抛出 ImagickException。
使用 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 *不是* 动画图像.");
}
?>