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 相关文章推荐
URL Rewrite的设置方法
Jan 02 PHP
PHP 配置文件中open_basedir选项作用
Jul 19 PHP
用PHP获取Google AJAX Search API 数据的代码
Mar 12 PHP
PHP过滤★等特殊符号的正则
Jan 27 PHP
Yii核心组件AssetManager原理分析
Dec 02 PHP
Laravel中使用阿里云OSS Composer包分享
Feb 10 PHP
基于PHP实现用户注册登录功能
Oct 14 PHP
phpcms中的评论样式修改方法
Oct 21 PHP
Yii框架实现多数据库配置和操作的方法
May 25 PHP
PHP开发实现快递查询功能详解
Apr 08 PHP
php实现获取近几日、月时间示例
Jul 06 PHP
php上传后台无法收到数据解决方法
Oct 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 基于文件头的文件类型验证类函数
2012/05/01 PHP
PHP 登录记住密码实现思路
2013/05/07 PHP
php操作(删除,提取,增加)zip文件方法详解
2015/03/12 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
2016/04/15 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
2019/03/18 PHP
php生成微信红包数组的方法
2019/09/05 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
JavaScript 空位补零实现代码
2010/02/26 Javascript
深入document.write()与HTML4.01的非成对标签的详解
2013/05/08 Javascript
通过javascript获取iframe里的值示例代码
2013/06/24 Javascript
获取数组中最大最小值方法js代码(自写)
2013/08/12 Javascript
jQuery超简单选项卡完整实例
2015/09/26 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
2017/03/21 Javascript
JavaScript中三个等号和两个等号你了解多少
2017/07/04 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
Vuex 模块化使用详解
2019/07/31 Javascript
Vue 中可以定义组件模版的几种方式
2019/08/06 Javascript
JS实现简单日历特效
2020/01/03 Javascript
JS判断数组四种实现方法详解
2020/06/29 Javascript
python使用fcntl模块实现程序加锁功能示例
2017/06/23 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
2019/04/11 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
Python中的整除和取模实例
2020/06/03 Python
keras实现图像预处理并生成一个generator的案例
2020/06/17 Python
用python爬虫批量下载pdf的实现
2020/12/01 Python
Booking.com缤客中国:全球酒店在线预订网站
2020/05/03 全球购物
经典公益广告词
2014/03/13 职场文书
商务日语专业毕业生自荐信
2014/03/27 职场文书
美术课外活动总结
2014/07/08 职场文书
党性心得体会
2014/09/03 职场文书
2014年党员个人剖析材料
2014/10/08 职场文书
机关作风建设整改方案
2014/10/27 职场文书
回复函格式及范文
2015/07/14 职场文书
2016党性教育学习心得体会
2016/01/21 职场文书
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS