加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

使用PHP调整图像大小,支持PNG,JPG

发布时间:2020-05-25 09:36:46 所属栏目:PHP 来源:互联网
导读:我正在使用这个类: class ImgResizer {function ImgResizer($originalFile = $newName) { $this - originalFile = $originalFile;}function resize($newWidth, $targetFile) { if (empty($newWidth) || empty

我正在使用这个类:

class ImgResizer {

function ImgResizer($originalFile = '$newName') {
    $this -> originalFile = $originalFile;
}
function resize($newWidth,$targetFile) {
    if (empty($newWidth) || empty($targetFile)) {
        return false;
    }
    $src = imagecreatefromjpeg($this -> originalFile);
    list($width,$height) = getimagesize($this -> originalFile);
    $newHeight = ($height / $width) * $newWidth;
    $tmp = imagecreatetruecolor($newWidth,$newHeight);
    imagecopyresampled($tmp,$src,$newWidth,$newHeight,$width,$height);

    if (file_exists($targetFile)) {
        unlink($targetFile);
    }
    imagejpeg($tmp,$targetFile,95);
}

}

哪个工作出色,但是用png失败,它创建一个调整大小的黑色图像.

有没有办法调整这个类来支持png图像?

function resize($newWidth,$originalFile) {

    $info = getimagesize($originalFile);
    $mime = $info['mime'];

    switch ($mime) {
            case 'image/jpeg':
                    $image_create_func = 'imagecreatefromjpeg';
                    $image_save_func = 'imagejpeg';
                    $new_image_ext = 'jpg';
                    break;

            case 'image/png':
                    $image_create_func = 'imagecreatefrompng';
                    $image_save_func = 'imagepng';
                    $new_image_ext = 'png';
                    break;

            case 'image/gif':
                    $image_create_func = 'imagecreatefromgif';
                    $image_save_func = 'imagegif';
                    $new_image_ext = 'gif';
                    break;

            default: 
                    throw new Exception('Unknown image type.');
    }

    $img = $image_create_func($originalFile);
    list($width,$height) = getimagesize($originalFile);

    $newHeight = ($height / $width) * $newWidth;
    $tmp = imagecreatetruecolor($newWidth,$img,$height);

    if (file_exists($targetFile)) {
            unlink($targetFile);
    }
    $image_save_func($tmp,"$targetFile.$new_image_ext");
}

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读