我应该相信Imagick :: getImageFormat()吗?

时间:2013-01-21 00:27:43

标签: php image imagemagick imagick

我需要知道是否可以信任此代码来获取图像格式:

$image = new Imagick($path);
$format = $image->getImageFormat();

或者我应该像往常一样检查扩展名,mime类型等吗?

2 个答案:

答案 0 :(得分:4)

您可以信任它,而不仅仅是使用简单的php字符串函数检查文件的扩展名(例如pic.jpg)。

您可以进行实验。例如,重命名.jpg图像文件,使其变为.png。使用Windows“重命名”的简单工具。所以现在看来​​图像是.png图像。 但请Imagick cmd -verbose C:\>identify -verbose pic.png Image: pic.png Format: JPEG (Joint Photographic Experts Group JFIF format) Class: DirectClass Geometry: 482x362+0+0 Resolution: 72x72 ... many more here ... .jpg,如下所示:

$image->getImageFormat();

你会发现实际上图像是Imagick。您的计划中某处{{1}}也是如此。

{{1}}是强大的工具。不幸的是,PHP中的API信息比GD少得多。

答案 1 :(得分:0)

如果您对Imagick课程不满意,可以随时尝试GD功能。例如

list (width, height, $type) = getimagesize($path);

$type变量将是IMAGETYPE_GIFIMAGETYPE_JPEGIMAGETYPE_PNG等之一

请参阅http://php.net/manual/en/function.getimagesize.phphttp://php.net/manual/en/image.constants.php