«

PHP如何压缩图片大小 PHP图片压缩的3种优化方案

磁力搜索 • 4 天前 • 2 次点击 • 资讯分享


在php中压缩图片需借助gd库或imagick库,具体步骤如下:1. 使用gd库通过imagecreatefromjpeg/imagecreatefromgif/imagecreatefrompng读取图片,再用imagejpeg或imagepng按指定质量保存;2. 使用imagick库创建对象后调用setimagecompressionquality设置质量并保存;3. 对png图片可调用optipng等工具优化。注意选择60-80的合理质量区间,并结合分辨率、颜色深度等因素综合优化效果。

PHP如何压缩图片大小 PHP图片压缩的3种优化方案

图片压缩,在PHP里其实不算难事,但要做好,让图片既小又清晰,那就得琢磨琢磨了。简单来说,就是牺牲一点质量,换取更小的文件体积,让网页加载更快。

PHP如何压缩图片大小 PHP图片压缩的3种优化方案

解决方案

PHP本身并没有内置的图片压缩功能,需要借助一些图像处理库,比如GD库、Imagick库。GD库通常服务器都会默认安装,Imagick功能更强大,但可能需要手动安装。

PHP如何压缩图片大小 PHP图片压缩的3种优化方案
  1. 使用GD库压缩图片:

    立即学习“PHP免费学习笔记(深入)”;

    PHP如何压缩图片大小 PHP图片压缩的3种优化方案

    GD库的优点是简单易用,但压缩效果相对有限。

    <?php
    function compressImageGD($source, $destination, $quality) {
        $info = getimagesize($source);
    
        if ($info['mime'] == 'image/jpeg')
            $image = imagecreatefromjpeg($source);
    
        elseif ($info['mime'] == 'image/gif')
            $image = imagecreatefromgif($source);
    
        elseif ($info['mime'] == 'image/png')
            $image = imagecreatefrompng($source);
    
        imagejpeg($image, $destination, $quality);
    
        return $destination;
    }
    
    $source_img = 'path/to/your/image.jpg';
    $destination_img = 'path/to/your/compressed/image.jpg';
    $quality = 60; // 压缩质量,范围0-100,数值越小,压缩率越高,图片质量越差
    
    compressImageGD($source_img, $destination_img, $quality);
    
    echo "图片压缩成功!";
    ?>
    登录后复制


    还没收到回复