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 用数组降低程序的时间复杂度
Dec 04 PHP
PHP 源代码压缩小工具
Dec 22 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
Jun 13 PHP
PHP实现设计模式中的抽象工厂模式详解
Oct 11 PHP
php浏览历史记录的方法
Mar 10 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
Mar 22 PHP
php.ini中date.timezone设置详解
Nov 20 PHP
php使用ftp实现文件上传与下载功能
Jul 21 PHP
PHP使用PDO访问oracle数据库的步骤详解
Sep 29 PHP
php通过header发送自定义数据方法
Jan 18 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
May 21 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
Mar 04 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
抓取并下载CSS中所有图片文件的php代码
2011/09/26 PHP
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
2012/04/02 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
PHP实现的XXTEA加密解密算法示例
2018/08/28 PHP
JS组件Bootstrap实现弹出框效果代码
2016/04/26 Javascript
jQuery仿京东商城楼梯式导航定位菜单
2016/07/25 Javascript
Ionic+AngularJS实现登录和注册带验证功能
2017/02/09 Javascript
基于layui table返回的值的多级嵌套的解决方法
2019/09/19 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
python学习数据结构实例代码
2015/05/11 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
pygame实现俄罗斯方块游戏
2018/06/26 Python
详解Django中六个常用的自定义装饰器
2018/07/04 Python
python高级特性和高阶函数及使用详解
2018/10/17 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
Python 循环终止语句的三种方法小结
2019/06/24 Python
python 随机森林算法及其优化详解
2019/07/11 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
详解PyQt5信号与槽的几种高级玩法
2020/03/24 Python
Python logging模块原理解析及应用
2020/08/13 Python
荷兰网上买鞋:MooieSchoenen.nl
2017/09/12 全球购物
Nike香港官网:Nike HK
2019/03/23 全球购物
荷兰音乐会和音乐剧门票订购网站:Topticketshop
2019/08/27 全球购物
比较一下entity bean和session bean
2013/12/27 面试题
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
创建精神文明单位实施方案
2014/03/08 职场文书
写自荐信的注意事项
2014/03/09 职场文书
代理协议书
2014/04/22 职场文书
学习方法演讲稿
2014/05/10 职场文书
违反交通法规检讨书
2014/09/10 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
深入理解python多线程编程
2021/04/18 Python
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
2022/04/13 Java/Android
Windows Server 2008 修改远程登录端口以及配置防火墙
2022/04/28 Servers