关于php:PHP图片压缩代码

41次阅读

共计 1282 个字符,预计需要花费 4 分钟才能阅读完成。

/**
 * desription 压缩图片
 * @param string $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;
        }

        $quality = 40;
        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, $quality);
                    imagedestroy($image_wp);
                    imagedestroy($image);
                }
                break;
            case 2:
                $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, $quality);
                imagedestroy($image_wp);
                imagedestroy($image);
                break;
            case 3:
                $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, $quality);
                imagedestroy($image_wp);
                imagedestroy($image);
                break;
        }
    }

正文完
 0