Davide Berra的回答很好,因此我使用exif_imagetype()而不是依赖文件扩展名对文件类型检测进行了一些改进:
/**
* Auxiliar function to convert images to JPG
*/
function convertImage($originalImage, $outputImage, $quality) {
switch (exif_imagetype($originalImage)) {
case IMAGETYPE_PNG:
$imageTmp=imagecreatefrompng($originalImage);
break;
case IMAGETYPE_JPEG:
$imageTmp=imagecreatefromjpeg($originalImage);
break;
case IMAGETYPE_GIF:
$imageTmp=imagecreatefromgif($originalImage);
break;
case IMAGETYPE_BMP:
$imageTmp=imagecreatefrombmp($originalImage);
break;
// Defaults to JPG
default:
$imageTmp=imagecreatefromjpeg($originalImage);
break;
}
// quality is a value from 0 (worst) to 100 (best)
imagejpeg($imageTmp, $outputImage, $quality);
imagedestroy($imageTmp);
return 1;
}
您必须启用php_exif扩展名才能使用它。
0
我有脚本:
是否可以将所有图像(png,gif等)转换为100%质量的jpg?如果是,怎么办?我想允许上传png和gif,但是此脚本应将此文件转换为jpg。 PHP可能这样吗?