PHP ImageMagick getImageType返回数组。。。如何与类型关联?

PHP ImageMagick getImageType返回数组。。。如何与类型关联?,php,imagemagick,Php,Imagemagick,PHP ImageMagick函数getImageType返回一个数组号,但我找不到任何关于如何将其与类型关联的文档 我需要知道它是不是png,jpg,gif等等 $image = new Imagick("test.png"); $ext = $image->getImageType(); // prints 6 echo $ext getImageType()根据此页返回一个数组(如果成功) 可能尝试使用vardump或打印$ext?您可以使用getimagesize获取图像大小

PHP ImageMagick函数getImageType返回一个数组号,但我找不到任何关于如何将其与类型关联的文档

我需要知道它是不是png,jpg,gif等等

$image = new Imagick("test.png");
$ext = $image->getImageType();

// prints 6
echo $ext
getImageType()根据此页返回一个数组(如果成功)


可能尝试使用vardump或打印$ext?

您可以使用
getimagesize
获取图像大小和类型。图像类型在索引位置2返回

1=GIF,2=JPG,3=PNG,4=SWF,5=PSD,6=BMP,7=TIFF(英特尔字节数),8=TIFF(摩托罗拉字节数),9=JPC,10=JP2,11=JPX,12=JB2,13=SWC,14=IFF,15=WBMP,16=XBM

用于getimagesize()的Php文档

用法示例:

list($width, $height, $type) = getimagesize('herp-derp.png');
echo $type;
编辑:来自phpdoc注释的有用注释

In addition to thomporter's quick-reference of the output array, here's what PHP 4.4.0 does:

Array[0] = Width 
Array[1] = Height
Array[2] = Image Type Flag
Array[3] = width="xxx" height="xxx"
Array[bits] = bits
Array[channels] = channels
Array[mime] = mime-type
Edit:
getImageType
返回一个IMAGICK\u TYPE\u*常量(http://www.phpf1.com/manual/imagick-getimagetype.html). 您可以在此处找到常量列表-

IMGTYPE常量

imagick::IMGTYPE_未定义(整数)
imagick::IMGTYPE_二层(整数)
imagick::IMGTYPE_灰度(整数)
imagick::IMGTYPE_灰度表(整数)
imagick::IMGTYPE_调色板(整数)
imagick::IMGTYPE_PALETTEMATTE(整数)
imagick::IMGTYPE_TRUECOLOR(整数)
imagick::IMGTYPE_TRUECOLORMATTE(整数)
imagick::IMGTYPE_颜色分离(整数)
imagick::IMGTYPE_COLORSEPARATIONMATTE(整数)

imagick::IMGTYPE_OPTIMIZE(integer)

这是我能为您做的最好的事情,这将为您提供扩展,您可以在加载图像之前先使用它

$path_parts  = pathinfo("test.png");
echo $path_parts ['extension'];

验证图像的一种快速有效的方法是:

$ identify -format %m image.jpg
JPEG
在PHP中:

<?php
// If its not a valid image, returns an empty string.
$image_type = exec('identify -format %m image.jpg');
?>


关于使用-format的更多信息:

我建议这种方法对我来说很好

    $image = new Imagick('image.gif');
    $image->getImageFormat();
    echo $image; // output GIF

print_r of$ext返回6,就像只回显$ext一样。文档中说它返回一个整数,而不是数组。(可能是文档已更改,但不再返回数组。)我正在尝试了解如何使用ImageMagick函数。不过谢谢。@kylex,我在上面列出了它返回的imagetype contants列表。你为什么想知道格式?你可以将格式设置为任何格式,所以我想我不知道你为什么想要这种格式。首先,如果它是一个透明的png,我不想将它保存为jpg,但如果它是jpg,我不想增加大小,而将其保存为png。这些答案中有任何一个解决了你的问题吗?@mcgrailm:没有。我已经想出了一个次要的解决方案,稍后我会发布。