我正在编写一个缩略图脚本,从我看到的缩略图往往看起来与它们的源格式相同。但是,脚本可能是从Web获取图像,因此我无法访问该文件两次。那么有没有办法获得exif_imagetype以外的文件类型和其他必须重新打开图像的函数?我不想依赖扩展,因为这显然是错误的。
我正在使用GD进行缩略图处理,所以使用句柄的东西会很完美,但我也可以使用文件的内容。是的,我知道GD会处理未压缩数据,但我不确定他们是否记得他们解压缩的数据。
答案 0 :(得分:1)
function getImageExt($bytes)
{
$hex_bytes = '';
for ($i = 0; $i < strlen($bytes); $i++)
{
$hex_bytes .= dechex(ord($bytes[$i]));
}
if (strncasecmp($hex_bytes,'FFD8',4) === 0) return 'jpg';
if (strncasecmp($hex_bytes,'474946',6) === 0) return 'gif';
if (strncasecmp($hex_bytes,'89504e47',8) === 0) return 'png';
if (strncasecmp($hex_bytes,'424d',4) === 0) return 'bmp';
return false;
}
答案 1 :(得分:-1)
希望这有帮助
// with GD
$img = getimagesize($path);
return $img['mime'];
// with FileInfo
$fi = new finfo(FILEINFO_MIME);
return $fi->file($path);