• 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

  • 相关阅读:
    HashMap 链表插入方式 → 头插为何改成尾插 ?
    MySQL 日志之 binlog 格式 → 关于 MySQL 默认隔离级别的探讨
    Eclipse
    Delphi
    Delphi
    Delphi
    Delphi
    Delphi
    Delphi
    Delphi
  • 原文地址:https://www.cnblogs.com/fogwang/p/11459253.html
Copyright © 2020-2023  润新知