Imagick::pingImage

(PECL imagick 2, PECL imagick 3)

Imagick::pingImage获取有关图像的基本属性

说明

public Imagick::pingImage(string $filename): bool

此方法可用于查询图像宽度、高度、大小和格式,而无需将整个图像读入内存。

参数

filename

要从中读取信息的文件名。

返回值

成功时返回 true

添加笔记

用户贡献的笔记 4 notes

hello at digitalnature dot eu
11 年前
只是一个警告:如果您只是想获取图像宽度和高度,请勿使用 Eero Niemi 的代码(使用 pingImage 识别图像),因为它实际上比将整个图像读入内存要慢 - 慢大约 10 倍!

正确的代码应该是

<?php

$image
= new Imagick();
$image->pingImage($file);
$width = $image->getImageWidth();
$height = $image->getImageHeight();

?>

(这比在内存中读取图像快大约 15 倍)
Sergey
11 年前
如果您不确定文件是否存在或可能已损坏,那么您应该使用 try - catch 结构。它可以防止代码在调用 pingImage 后停止执行时(如果文件不存在或已损坏)出现代码失败的情况。

<?php
$im
= new Imagick();
try {
$im->pingImage('3.jpg');
}
catch(
ImagickException $e) {
echo
"image doesn't exist";
}
?>
Gynoid
8 年前
您也可以执行

$image = new Imagick($file);
$width = $image->getImageWidth();
$height = $image->getImageHeight();

无需使用 pingImage() 初始化即可捕获宽度/高度参数。
Eero Niemi (eero at eero dot info)
16 年前
实际上,前面的示例会导致文件在 Imagick 的堆栈上加载两次,正确的方法是

<?php

$file
= 'foo.jpg';
$image = new Imagick();
$image->pingImage($file);
$image_info = $image->identifyImage();

?>
To Top