php等比例压缩图片
程序员文章站
2023-08-21 09:10:28
1 /** 2 * desription 压缩图片 3 * @param sting $imgsrc 图片路径 4 * @param string $imgdst 压缩后保存路径 5 */ 6 public function compressedImage($imgsrc, $imgdst) { 7... ......
1 /** 2 * desription 压缩图片 3 * @param sting $imgsrc 图片路径 4 * @param string $imgdst 压缩后保存路径 5 */ 6 public function compressedImage($imgsrc, $imgdst) { 7 list($width, $height, $type) = getimagesize($imgsrc); 8 9 $new_width = $width;//压缩后的图片宽 10 $new_height = $height;//压缩后的图片高 11 12 if($width >= 600){ 13 $per = 600 / $width;//计算比例 14 $new_width = $width * $per; 15 $new_height = $height * $per; 16 } 17 18 switch ($type) { 19 case 1: 20 $giftype = check_gifcartoon($imgsrc); 21 if ($giftype) { 22 header('Content-Type:image/gif'); 23 $image_wp = imagecreatetruecolor($new_width, $new_height); 24 $image = imagecreatefromgif($imgsrc); 25 imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 26 //90代表的是质量、压缩图片容量大小 27 imagejpeg($image_wp, $imgdst, 90); 28 imagedestroy($image_wp); 29 imagedestroy($image); 30 } 31 break; 32 case 2: 33 header('Content-Type:image/jpeg'); 34 $image_wp = imagecreatetruecolor($new_width, $new_height); 35 $image = imagecreatefromjpeg($imgsrc); 36 imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 37 //90代表的是质量、压缩图片容量大小 38 imagejpeg($image_wp, $imgdst, 90); 39 imagedestroy($image_wp); 40 imagedestroy($image); 41 break; 42 case 3: 43 header('Content-Type:image/png'); 44 $image_wp = imagecreatetruecolor($new_width, $new_height); 45 $image = imagecreatefrompng($imgsrc); 46 imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 47 //90代表的是质量、压缩图片容量大小 48 imagejpeg($image_wp, $imgdst, 90); 49 imagedestroy($image_wp); 50 imagedestroy($image); 51 break; 52 } 53 }
上一篇: 原生JS实现获取及修改CSS样式的方法