当前位置:首页 > PHP教程 >

PHP按一定比例压缩图片,并保持清晰度

发布时间:2022-04-20 09:58:15 作者:佚名 阅读:(8)

最近发现网站的带宽增加了不少查找发现是因为图片过大导致的,解决方法就是在上传图片的时候对图片进行等比压缩来减小图片的大小,接下吾爱编程为大家分享PHP按一定比例压缩图片并保持清晰度的方法,有需要的小伙伴可以参考一下:

PHP按一定比例压缩图片,并保持清晰度

1、Images类文件

/**
 *图片压缩操作类
 */
class Images{
    private $src;
    private $imageinfo;
    private $image;
    public  $percent = 0.1;//比例
    public function __construct($src){
        $this->src = $src;
    }
    /**
    *打开图片
    */
    public function openImage(){
        list($width, $height, $type, $attr) = getimagesize($this->src);
        $this->imageinfo = array(
            'width'=>$width,
            'height'=>$height,
            'type'=>image_type_to_extension($type,false),
            'attr'=>$attr
        );
        $fun = "imagecreatefrom".$this->imageinfo['type'];
        $this->image = $fun($this->src);
    }
    /**
     * 操作图片
     */
    public function thumpImage(){
        $new_width = $this->imageinfo['width'] * $this->percent;
        $new_height = $this->imageinfo['height'] * $this->percent;
        $image_thump = imagecreatetruecolor($new_width,$new_height);
        //将原图复制带图片载体上面,并且按照一定比例压缩,极大的保持了清晰度
        imagecopyresampled($image_thump,$this->image,0,0,0,0,$new_width,$new_height,$this->imageinfo['width'],$this->imageinfo['height']);
        imagedestroy($this->image);
        $this->image = $image_thump;
    }
    /**
     * 输出图片
     */
    public function showImage(){
        header('Content-Type: image/'.$this->imageinfo['type']);
        $funcs = "image".$this->imageinfo['type'];
        $funcs($this->image);
    }
    /**
     *保存图片到硬盘
     */
    public function saveImage($name){
        $funcs = "image".$this->imageinfo['type'];
        $funcs($this->image,$name.'.'.$this->imageinfo['type']);
    }
    /**
     *销毁图片
     */
    public function __destruct(){
        imagedestroy($this->image);
    }
}

以上方法保存为images.class.php类文件

2、方法测试:

include 'images.class.php';
$src = "001.jpg";
$image = new Images($src);
$image->percent = 0.2;
$image->openImage();
$image->thumpImage();
$image->showImage();
$image->saveImage('001_thumb')

3、压缩效果

PHP按一定比例压缩图片,并保持清晰度

以上就是吾爱编程为大家介绍的关于等比例压缩图片并保持清晰度方法的全部内容了,希望对大家有所帮助,按照上面方式就可以解决,了解更多相关文章请关注吾爱编程网!

欢迎分享转载→ PHP按一定比例压缩图片,并保持清晰度

© 2015-2021 - 吾爱编程网 版权所有 苏ICP备18033726号-1关于我们 - 网站声明 - 联系我们