png格式本身优点比较多,但一个比较大的缺点是存储空间占用较大,网络传输占用带宽,所以web传输jpg更优,fastadmin(thinkphp)如何实现png转jpg呢?下面是具体实现的函数,前提是已经安装过thinkphp image组件:

fastadmin学习日记:fastadmin(thinkphp)如何实现png转jpg
function Png2Jpg($url)
{
//如果是远程文件直接返回
if(substr($url,0,7)=='/upload'){
//本地文件继续执行
}else{
//远程文件直接返回
return $url;
}
$suffix = strtolower(pathinfo($url, PATHINFO_EXTENSION));
if (!in_array($suffix, ['gif', 'jpg', 'jpeg', 'bmp', 'png', ''])) {
$suffix = 'png';
}
//var_dump($suffix);
$uploadDir = substr($url, 0, strripos($url, '/')+1 );
$fileName = substr($url, strripos($url, '/') + 1);
// 保存路径
$save_dir = ROOT_PATH . 'public' . $uploadDir;
//检查文件是否存在
if(file_exists($save_dir.$fileName)){
//存在本地文件了直接执行,不存在的直接返回false
}else{
return false;
}
//开始缩略图
if($save_dir.$fileName){
try {
$image=\think\Image::open($save_dir . $fileName);//路径指向你上传的图片
} catch (Exception $e) {
print $e->getMessage();
echo '错误图片:'.$save_dir.$fileName.'<br>';
return false;
}
$image->save($save_dir . $fileName);
}
return $uploadDir.$fileName;
}