zoukankan      html  css  js  c++  java
  • php实现等比例压缩图片

     现在一般手机拍摄的照片文件都比较大,但是上传到服务器我们不想保存这么大的文件。

    /**
         * desription 压缩图片
         * @param sting $imgsrc 图片路径
         * @param string $imgdst 压缩后保存路径
         */
        public function compressedImage($imgsrc, $imgdst) {
            list($width, $height, $type) = getimagesize($imgsrc);
          
            $new_width = $width;//压缩后的图片宽
            $new_height = $height;//压缩后的图片高
    
            if($width >= 600){
                $per = 600 / $width;//计算比例
                $new_width = $width * $per;
                $new_height = $height * $per;
            }
    
            switch ($type) {
                case 1:
                    $giftype = check_gifcartoon($imgsrc);
                    if ($giftype) {
                        header('Content-Type:image/gif');
                        $image_wp = imagecreatetruecolor($new_width, $new_height);
                        $image = imagecreatefromgif($imgsrc);
                        imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
                        //90代表的是质量、压缩图片容量大小
                        imagejpeg($image_wp, $imgdst, 90);
                        imagedestroy($image_wp);
                        imagedestroy($image);
                    }
                    break;
                case 2:
                    header('Content-Type:image/jpeg');
                    $image_wp = imagecreatetruecolor($new_width, $new_height);
                    $image = imagecreatefromjpeg($imgsrc);
                    imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
                    //90代表的是质量、压缩图片容量大小
                    imagejpeg($image_wp, $imgdst, 90);
                    imagedestroy($image_wp);
                    imagedestroy($image);
                    break;
                case 3:
                    header('Content-Type:image/png');
                    $image_wp = imagecreatetruecolor($new_width, $new_height);
                    $image = imagecreatefrompng($imgsrc);
                    imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
                    //90代表的是质量、压缩图片容量大小
                    imagejpeg($image_wp, $imgdst, 90);
                    imagedestroy($image_wp);
                    imagedestroy($image);
                    break;
            }
        }
    

      来源:https://www.jb51.net/article/144518.htm

  • 相关阅读:
    爬虫之暴力字典生成器
    爬虫之自动生成url
    数字、大小写字母的字符编码
    对avalonjs的研究
    求墙之间有多少水洼
    2.在centos7虚拟机搭建nginx网站
    P1250 种树
    暂时用笔记
    羊村的OI题解
    P1083 借教室
  • 原文地址:https://www.cnblogs.com/fogwang/p/11459253.html
Copyright © 2011-2022 走看看