我需要知道是否可以信任此代码来获取图像格式:
$image = new Imagick($path);
$format = $image->getImageFormat();
或者我应该像往常一样检查扩展名,mime类型等吗?
答案 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_GIF
,IMAGETYPE_JPEG
,IMAGETYPE_PNG
等之一
请参阅http://php.net/manual/en/function.getimagesize.php和http://php.net/manual/en/image.constants.php