PHP 中的自动图像格式检测
我正在寻找一种方法来获取当前放置在临时位置的用户上传图像,例如:/tmp/ jkhjkh78并从中创建php图像,自动检测格式。
有没有比一堆尝试/捕捉图像从jpeg,imagefrompng等更聪明的方法来做到这一点?
我正在寻找一种方法来获取当前放置在临时位置的用户上传图像,例如:/tmp/ jkhjkh78并从中创建php图像,自动检测格式。
有没有比一堆尝试/捕捉图像从jpeg,imagefrompng等更聪明的方法来做到这一点?
//Image Processing
$cover = $_FILES['cover']['name'];
$cover_tmp_name = $_FILES['cover']['tmp_name'];
$cover_img_path = '/images/';
$type = exif_imagetype($cover_tmp_name);
if ($type == (IMAGETYPE_PNG || IMAGETYPE_JPEG || IMAGETYPE_GIF || IMAGETYPE_BMP)) {
$cover_pre_name = md5($cover); //Just to make a image name random and cool :D
/**
* @description : possible exif_imagetype() return values in $type
* 1 - gif image
* 2 - jpg image
* 3 - png image
* 6 - bmp image
*/
switch ($type) { #There are more type you can choose. Take a look in php manual -> http://www.php.net/manual/en/function.exif-imagetype.php
case '1' :
$cover_format = 'gif';
break;
case '2' :
$cover_format = 'jpg';
break;
case '3' :
$cover_format = 'png';
break;
case '6' :
$cover_format = 'bmp';
break;
default :
die('There is an error processing the image -> please try again with a new image');
break;
}
$cover_name = $cover_pre_name . '.' . $cover_format;
//Checks whether the uploaded file exist or not
if (file_exists($cover_img_path . $cover_name)) {
$extra = 1;
while (file_exists($cover_img_path . $cover_name)) {
$cover_name = md5($cover) . $extra . '.' . $cover_format;
$extra++;
}
}
//Image Processing Ends
这将使图像名称看起来很酷和独特