1

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

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

还是我应该像往常一样检查扩展名、mime 类型等?

4

2 回答 2

4

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

你可以做个实验。例如,重命名.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是强大的工具。不幸的是,PHP 中关于其 API 的信息比 GD 少得多。

于 2013-01-21T00:41:53.873 回答
0

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

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

变量将$typeIMAGETYPE_GIF, IMAGETYPE_JPEG,IMAGETYPE_PNG等之一

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

于 2013-01-21T00:41:19.870 回答