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中使用与Perl兼容的正则表达式
Nov 26 PHP
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
Jul 29 PHP
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
Apr 09 PHP
PHP类与对象中的private访问控制的疑问
Nov 01 PHP
php curl获取网页内容(IPV6下超时)的解决办法
Jul 16 PHP
php ctype函数中文翻译和示例
Mar 21 PHP
php多个文件及图片上传实例详解
Nov 10 PHP
PHP中文乱码解决方案
Mar 05 PHP
PHP连接sftp并下载文件的方法教程
Aug 26 PHP
php多进程模拟并发事务产生的问题小结
Dec 07 PHP
PHP之多条件混合筛选功能的实现方法
Oct 09 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
Dec 11 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
山进SANGEAN ATS-909X电路分析
2021/03/02 无线电
WINXP下apache+php4+mysql
2006/11/25 PHP
PHPAnalysis中文分词类详解
2014/06/13 PHP
php中get_object_vars()方法用法实例
2015/02/08 PHP
php源码分析之DZX1.5随机数函数random用法
2015/06/17 PHP
php 输入输出流详解及示例代码
2016/08/25 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
2019/05/06 PHP
JavaScript使用ActiveXObject访问Access和SQL Server数据库
2015/04/02 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
2015/10/19 Javascript
三分钟带你玩转jQuery.noConflict()
2016/02/15 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
js文件中直接alert()中文出来的是乱码的解决方法
2016/11/01 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
jQuery插件HighCharts绘制2D带有Legend的饼图效果示例【附demo源码下载】
2017/03/10 Javascript
jQuery日程管理控件glDatePicker用法详解
2017/03/29 jQuery
详解node如何让一个端口同时支持https与http
2017/07/04 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
2019/04/20 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
python最小生成树kruskal与prim算法详解
2019/01/17 Python
django项目登录中使用图片验证码的实现方法
2019/08/15 Python
详解Python并发编程之从性能角度来初探并发编程
2019/08/23 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
2019/12/04 Python
20佳惊艳的HTML5应用程序示例分享
2011/05/03 HTML / CSS
印度尼西亚手表和包包商店:Urban Icon
2019/12/12 全球购物
Internal修饰符有什么含义
2013/07/10 面试题
你们项目是如何进行变更控制的
2015/08/26 面试题
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
教师业务学习制度
2014/01/25 职场文书
《水乡歌》教学反思
2014/04/24 职场文书
优秀团员事迹材料1500字
2014/08/31 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
武当山导游词
2015/02/03 职场文书
小学体育教学随笔
2015/08/14 职场文书
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python