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

  • 相关阅读:
    Java异常
    JS多个对象添加到一个对象中
    JSON.parse(),JSON.stringify(),jQuery.parseJSON()
    java中什么是序列化和反序列化
    html颜色字体字符代码
    冒泡排序应用
    HTML 速查列表
    html初学(一)
    html初学(二)
    一次、二次、三次指数平滑计算思想及代码
  • 原文地址:https://www.cnblogs.com/fogwang/p/11459253.html
Copyright © 2011-2022 走看看