📅  最后修改于: 2023-12-03 15:18:26.774000             🧑  作者: Mango
在 PHP 中,getImageType()
函数用于获取给定图像的文件类型。它返回一个代表图像类型的整数值,用于标识图像文件是 PNG、JPEG 还是 GIF 等不同类型。
/**
* 获取图像的文件类型
*
* @param string $imagePath 图像文件的路径
* @return int|false 成功时返回代表图像类型的整数值,失败时返回 false
*/
function getImageType(string $imagePath)
{
$type = exif_imagetype($imagePath);
return $type !== false ? $type : false;
}
getImageType()
函数接受一个参数:
$imagePath
: 图像文件的路径。getImageType()
函数返回一个代表图像类型的整数值,如下所示:
IMAGETYPE_GIF
:GIF 类型的图像。IMAGETYPE_JPEG
:JPEG 类型的图像。IMAGETYPE_PNG
:PNG 类型的图像。IMAGETYPE_SWF
:SWF 类型的图像。IMAGETYPE_PSD
:PSD 类型的图像。IMAGETYPE_BMP
:BMP 类型的图像。IMAGETYPE_TIFF_II
:TIFF(Intel 字节顺序)类型的图像。IMAGETYPE_TIFF_MM
:TIFF(Motorola 字节顺序)类型的图像。IMAGETYPE_JPC
:JPC 类型的图像。IMAGETYPE_JP2
:JP2 类型的图像。IMAGETYPE_JPX
:JPX 类型的图像。IMAGETYPE_JB2
:JB2 类型的图像。IMAGETYPE_SWC
:SWC 类型的图像。IMAGETYPE_IFF
:IFF 类型的图像。IMAGETYPE_WBMP
:WBMP 类型的图像。IMAGETYPE_XBM
:XBM 类型的图像。如果获取图像类型失败,getImageType()
函数会返回 false
。
$imagePath = 'path/to/image.jpg';
$type = getImageType($imagePath);
if ($type !== false) {
echo '图像类型为: ' . getFormatName($type);
} else {
echo '获取图像类型失败';
}
/**
* 将整数型的类型转换为对应的图像文件类型
*
* @param int $type 图像类型的整数值
* @return string 图像类型的字符串表示
*/
function getFormatName(int $type): string
{
switch ($type) {
case IMAGETYPE_GIF:
return 'GIF';
case IMAGETYPE_JPEG:
return 'JPEG';
case IMAGETYPE_PNG:
return 'PNG';
case IMAGETYPE_SWF:
return 'SWF';
case IMAGETYPE_PSD:
return 'PSD';
case IMAGETYPE_BMP:
return 'BMP';
case IMAGETYPE_TIFF_II:
case IMAGETYPE_TIFF_MM:
return 'TIFF';
case IMAGETYPE_JPC:
return 'JPC';
case IMAGETYPE_JP2:
return 'JP2';
case IMAGETYPE_JPX:
return 'JPX';
case IMAGETYPE_JB2:
return 'JB2';
case IMAGETYPE_SWC:
return 'SWC';
case IMAGETYPE_IFF:
return 'IFF';
case IMAGETYPE_WBMP:
return 'WBMP';
case IMAGETYPE_XBM:
return 'XBM';
default:
return '未知';
}
}
以上示例中,我们首先调用 getImageType()
函数获取图像文件的类型,然后根据返回的整数值使用 getFormatName()
函数将其转换为对应的图像类型字符串。如果成功获取到图像类型,则输出该类型,否则输出 "获取图像类型失败"。
getImageType()
函数,需要开启 PHP 的 exif
模块。