PHP按一定比例压缩图片的方法


Posted in PHP onOctober 12, 2018

图片压缩是我们日常开发中经常使用的操作,在如今需求很多的情况往往,上传的一张图片会被压缩成不同比例的图片,每次去操作也是一件非常繁琐的事情,于是进行了封装了一个压缩图片的操作类,希望大家遇到后,不用再为写很多压缩图片代码烦恼了。

压缩图片的工具类:

<?php
/**
 图片压缩操作类
 v1.0
*/
  class Image{
  
  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);
  }
  
  }
 
 
?>

测试:

<?php
 
 require 'image.class.php';
 $src = "001.jpg";
 $image = new Image($src);
 $image->percent = 0.2;
 $image->openImage();
 $image->thumpImage();
 $image->showImage();
 $image->saveImage(md5("aa123"));
 
 
?>

结果:

PHP按一定比例压缩图片的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
《PHP边学边教》(02.Apache+PHP环境配置――下篇)
Dec 13 PHP
php,ajax实现分页
Mar 27 PHP
php mysql数据库操作类
Jun 04 PHP
php下使用SimpleXML 处理XML 文件
Feb 27 PHP
php编写的抽奖程序中奖概率算法
May 14 PHP
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
Dec 28 PHP
对比分析php中Cookie与Session的异同
Feb 19 PHP
基于PHP微信红包的算法探讨
Jul 21 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
Mar 31 PHP
PHP 实现从数据库导出到.csv文件方法
Jul 06 PHP
php使用curl模拟多线程实现批处理功能示例
Jul 25 PHP
php的无刷新操作实现方法分析
Feb 28 PHP
PHP实现图片压缩
Sep 09 #PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
Oct 12 #PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
Oct 12 #PHP
PHP解析url并得到url参数方法总结
Oct 11 #PHP
详细对比php中类继承和接口继承
Oct 11 #PHP
PHP JWT初识及其简单示例
Oct 10 #PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
Oct 10 #PHP
You might like
需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
2008/05/26 PHP
PHP数据集构建JSON格式及新数组的方法
2012/11/07 PHP
解析PHP工厂模式的好处
2013/06/18 PHP
php中的strpos使用示例
2014/02/27 PHP
深入理解PHP JSON数组与对象
2016/07/19 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
window.location.reload 刷新使用分析(去对话框)
2015/11/11 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
jquery文字填写自动高度的实现方法
2016/11/07 Javascript
Vue.js使用v-show和v-if的注意事项
2016/12/13 Javascript
javascript实现页面滚屏效果
2017/01/17 Javascript
Vue入门之数量加减运算操作示例
2018/12/11 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
js正则表达式简单校验方法
2021/01/03 Javascript
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
2014/11/19 Python
win与linux系统中python requests 安装
2016/12/04 Python
Python实现的各种常见分布算法示例
2018/12/13 Python
用python实现刷点击率的示例代码
2019/02/21 Python
Python 点击指定位置验证码破解的实现代码
2019/09/11 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
python深copy和浅copy区别对比解析
2019/12/26 Python
python对execl 处理操作代码
2020/06/22 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
俄罗斯护发和专业化妆品购物网站:Hihair
2019/09/28 全球购物
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
出纳岗位职责范本
2013/12/01 职场文书
财务科科长岗位职责
2014/03/10 职场文书
爱国口号
2014/06/19 职场文书
水利水电专业自荐信
2014/07/08 职场文书
高中校园广播稿3篇
2014/09/29 职场文书
模范班主任事迹材料
2014/12/17 职场文书
小学生优秀评语
2014/12/29 职场文书