请选择 进入手机版 | 继续访问电脑版
绿茶科技社区

php实现等比例压缩图片

2019-7-15 05:53
863
这篇文章主要为大家详细介绍了php实现等比例压缩图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了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.       
  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.   }
复制代码






分享到 :
0 人收藏

3 个回复

倒序浏览
冠军  高级会员 | 2019-7-15 06:08:37
纯粹路过,没任何兴趣,仅仅是看在老用户份上回复一下
老翅寒暑  高级会员 | 2019-8-2 04:12:03
LZ帖子不给力,勉强给回复下吧
魏琼东  高级会员 | 7 天前
无论是不是沙发都得回复下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

举报|Archiver|手机版|小黑屋|Lvchakeji Inc.  

Powered by Discuz! X3.3 © 2001-2016 Comsenz Inc.

返回顶部