文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用php怎么压缩图片并保持大小不变

2023-06-14 10:08

关注

这篇文章将为大家详细讲解有关使用php怎么压缩图片并保持大小不变,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

cdn静态资源包

oss管理文件资源,不一定是图片,也可以是文件哦

搭建自己的文件服务器,图片当然可以了

不过以上好是好,不过都得花钱,我感觉还是从根本上解决比较好,来吧,那我们就上代码把

<?php     class imgcompress{             private $srcurlurl;             private $image;             private $imageinfo;             private $percent = 0.5;         public function __construct($srcurl, $percent=1)    {            $this->src = $srcurl;            $this->percent = $percent;    }            public function compressImg($saveName='')    {            $this->_openImage();            if(!empty($saveName)) $this->_saveImage($saveName);  //保存       else $this->_showImage();    }            private 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);                $this->_thumpImage();    }            private 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;    }        private function _showImage()    {            header('Content-Type: image/'.$this->imageinfo['type']);            $funcs = "image".$this->imageinfo['type'];            $funcs($this->image);    }            private function _saveImage($dstImgName)    {            if(empty($dstImgName)) return false;            $allowImgs = ['.jpg', '.jpeg', '.png', '.bmp', '.wbmp','.gif'];   //如果目标图片名有后缀就用目标图片扩展名 后缀,如果没有,则用源图的扩展名        $dstExt =  strrchr($dstImgName ,".");                $sourseExt = strrchr($this->src ,".");                if(!empty($dstExt)) $dstExt =strtolower($dstExt);                if(!empty($sourseExt)) $sourseExt =strtolower($sourseExt);                //有指定目标名扩展名        if(!empty($dstExt) && in_array($dstExt,$allowImgs)){                    $dstName = $dstImgName;        }elseif(!empty($sourseExt) && in_array($sourseExt,$allowImgs)){                    $dstName = $dstImgName.$sourseExt;        }else{                    $dstName = $dstImgName.$this->imageinfo['type'];        }                $funcs = "image".$this->imageinfo['type'];                $funcs($this->image,$dstName);    }            public function __destruct(){        imagedestroy($this->image);    }}$source =  '1.jpg';//原图片名称$dst_img = 'text.png';//压缩后图片的名称$percent = 1;  #原图压缩,不缩放,但体积大大降低$image = (new imgcompress($source,$percent))->compressImg($dst_img);//新图片名字叫什么名字可以自己定

关于使用php怎么压缩图片并保持大小不变就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯