广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >使用php怎么压缩图片并保持大小不变
  • 413
分享到

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

2023-06-14 10:06:59 413人浏览 泡泡鱼
摘要

这篇文章将为大家详细讲解有关使用PHP怎么压缩图片并保持大小不变,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。cdn静态资源包oss管理文件资源,不一定是图片,也可以是文件哦搭建自己的文件服

这篇文章将为大家详细讲解有关使用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怎么压缩图片并保持大小不变就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: 使用php怎么压缩图片并保持大小不变

本文链接: https://www.lsjlt.com/news/269975.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用php怎么压缩图片并保持大小不变
    这篇文章将为大家详细讲解有关使用php怎么压缩图片并保持大小不变,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。cdn静态资源包oss管理文件资源,不一定是图片,也可以是文件哦搭建自己的文件服...
    99+
    2023-06-14
  • java怎么压缩图片大小不改变图片分辨率
    在Java中可以使用javax.imageio包中的类来压缩图片大小而不改变图片分辨率。下面是一个压缩图片大小的示例代码:```ja...
    99+
    2023-09-14
    java
  • Android开发怎么实现图片大小与质量压缩及保存
    本篇内容主要讲解“Android开发怎么实现图片大小与质量压缩及保存”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android开发怎么实现图片大小与质量压缩及保存”吧!Android中图片有四...
    99+
    2023-06-30
  • 怎么使用C++和Direct3D获取屏幕截图并根据传入分辨率进行缩放图片大小
    这篇文章主要介绍“怎么使用C++和Direct3D获取屏幕截图并根据传入分辨率进行缩放图片大小”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用C++和Direct3D获取屏幕截图并根据传入分辨...
    99+
    2023-07-05
  • 网页中img图片怎么使用css实现等比例自动缩放不变形
    本文小编为大家详细介绍“网页中img图片怎么使用css实现等比例自动缩放不变形”,内容详细,步骤清晰,细节处理妥当,希望这篇“网页中img图片怎么使用css实现等比例自动缩放不变形”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作