PHP中的图片压缩: 话不多少, 上码~
$file = request()->file('image'); //获取前端传过来的图片
$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads/'); //将图片存入/public/uploads/
// 成功上传后 获取上传信息
if($info){
// 输出 jpg
$imageType = $info->getExtension();
// 输出 图片路径,打印查看(uploads/后的路径)
$image = $info->getSaveName();
if($imageType == 'jpg'){
// 获取完整路径
$image = ROOT_PATH . "/public/uploads/head/" . $image;
// 加载图片资源
$src = @imagecreatefromjpeg($image);
// 生成新图片的宽高,楼主这里使用的是原有图片的,大家可设置
list($width,$height) = getimagesize($image);
$newwidth = $width;
$newheight = $height;
// 生成新的宽高
$tmp = imagecreatetruecolor($newwidth,$newheight);
// 缩放图片
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// 第三个参数(0~100);越大越清晰,图片大小也高; png格式的为(1~9)
imagejpeg($tmp, $image, 50);
// imagedestroy($tmp); // 销毁原来图片,一般不使用
// 请参考jpg中的详解
}elseif($imageType == 'png'){
$image = ROOT_PATH . "/public/uploads/head/" . $image;
$src = @imagecreatefrompng($image);
list($width,$height) = getimagesize($image);
$newwidth = $width;
$newheight = $height;
$tmp = imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
$output = imagepng($tmp, $image, 5);
// imagedestroy($tmp);
}
如有更好实现方式, 请告知~