PHP等比压缩上传图片
/**
* desription 压缩图片
* $imgsrc 图片路径
* $imgdst 压缩后保存路径
*/
function compressedImage($imgsrc,$imgdst) {
//getimagesize() 获取图像信息。
list($width, $height, $type) = getimagesize($imgsrc);
$new_width = $width;//压缩后的图片宽
$new_height = $height;//压缩后的图片高
if($width >= 620){
$per = 620 / $width;//计算比例
$new_width = $width * $per;
$new_height = $height * $per;
}
if($type == 1){
//imagecreatefromgif由文件或 URL 创建一个新图象。
$image = imagecreatefromgif($imgsrc);
}elseif($type == 2){
//imagecreatefromjpeg由文件或 URL 创建一个新图象。
$image = imagecreatefromjpeg($imgsrc);
}elseif($type == 3){
//imagecreatefrompng由文件或 URL 创建一个新图象。
$image = imagecreatefrompng($imgsrc);
}
//imagecreatetruecolor — 新建一个真彩色图像
$image_wp = imagecreatetruecolor($new_width, $new_height);
//imagecopyresampled() 将一幅图像中的一块正方形区域拷贝到另一个图像中,平滑地插入像素值,因此,尤其是,减小了图像的大小而仍然保持了极大的清晰度。
imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// imagejpeg()以 JPEG 格式将图像输出到浏览器或文件,90代表的是质量、压缩图片容量大小
if(imagejpeg($image_wp, $imgdst, 90)){
imagedestroy($image_wp);
imagedestroy($image);
return true;
}else{
imagedestroy($image_wp);
imagedestroy($image);
return false;
}
}
转载:https://www.jb51.net/article/144518.htmhttps://www.jb51.net/article/144518.htm