当前位置:首页 > PHP教程 > php图像处理 > 列表

PHP等比例压缩图片的实例代码

发布:smiling 来源: PHP粉丝网  添加日期:2021-10-20 12:01:47 浏览: 评论:0 

本文通过一段简单的代码给大家介绍PHP等比例压缩图片的方法,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧。

具体代码如下所示:

  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.     $new_width = $width;//压缩后的图片宽 
  9.     $new_height = $height;//压缩后的图片高 
  10.     if($width >= 600){ 
  11.       $per = 600 / $width;//计算比例 
  12.       $new_width = $width * $per
  13.       $new_height = $height * $per
  14.     } 
  15.     switch ($type) { 
  16.       case 1: 
  17.         $giftype = check_gifcartoon($imgsrc); 
  18.         if ($giftype) { 
  19.           header('Content-Type:image/gif'); 
  20.           $image_wp = imagecreatetruecolor($new_width$new_height); 
  21.           $image = imagecreatefromgif($imgsrc); 
  22.           imagecopyresampled($image_wp$image, 0, 0, 0, 0, $new_width$new_height$width$height); 
  23.           //90代表的是质量、压缩图片容量大小 
  24.           imagejpeg($image_wp$imgdst, 90); 
  25.           imagedestroy($image_wp); 
  26.           imagedestroy($image); 
  27.         } 
  28.         break
  29.       case 2: 
  30.         header('Content-Type:image/jpeg'); 
  31.         $image_wp = imagecreatetruecolor($new_width$new_height); 
  32.         $image = imagecreatefromjpeg($imgsrc); 
  33.         imagecopyresampled($image_wp$image, 0, 0, 0, 0, $new_width$new_height$width$height); 
  34.         //90代表的是质量、压缩图片容量大小 
  35.         imagejpeg($image_wp$imgdst, 90); 
  36.         imagedestroy($image_wp); 
  37.         imagedestroy($image); 
  38.         break
  39.       case 3: 
  40.         header('Content-Type:image/png'); 
  41.         $image_wp = imagecreatetruecolor($new_width$new_height); 
  42.         $image = imagecreatefrompng($imgsrc); 
  43.         imagecopyresampled($image_wp$image, 0, 0, 0, 0, $new_width$new_height$width$height); 
  44.         //90代表的是质量、压缩图片容量大小 
  45.         imagejpeg($image_wp$imgdst, 90); 
  46.         imagedestroy($image_wp); 
  47.         imagedestroy($image); 
  48.         break
  49.     } 
  50.   }

Tags: PHP等比例压缩图片

分享到: