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桌面中心(三) 修改数据库
Mar 11 PHP
PHP-MySQL教程归纳总结
Jun 07 PHP
PHP CURL模拟GET及POST函数代码
Apr 25 PHP
php开发环境配置记录
Jan 14 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
Jun 07 PHP
利用curl抓取远程页面内容的示例代码
Jul 23 PHP
php smarty truncate UTF8乱码问题解决办法
Jun 13 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
Aug 02 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 02 PHP
PHP连接MySQL数据库操作代码实例解析
Jul 11 PHP
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
Apr 01 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连mysql和oracle数据库性能比较
2006/10/09 PHP
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
基于php split()函数的用法详解
2013/06/05 PHP
PHP生成等比缩略图类和自定义函数分享
2014/06/25 PHP
php防止sql注入之过滤分页参数实例
2014/11/03 PHP
CI映射(加载)数据到view层的方法
2016/03/28 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
2016/11/07 PHP
JavaScript中的Location地址对象
2008/01/16 Javascript
IE6下通过a标签点击切换图片的问题
2010/11/14 Javascript
返回上一页并自动刷新的JavaScript代码
2014/02/19 Javascript
PHP结合jQuery实现的评论顶、踩功能
2015/07/22 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
2016/08/20 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
2016/09/13 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
React组件的三种写法总结
2017/01/12 Javascript
jQuery实现动态控制页面元素的方法分析
2017/12/20 jQuery
使用async、enterproxy控制并发数量的方法详解
2018/01/02 Javascript
JS实现简易留言板特效
2019/12/23 Javascript
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
js中调用微信的扫描二维码功能的实现代码
2020/04/11 Javascript
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
详解JavaScript编程中的window与window.screen对象
2015/10/26 Python
Python实现将数据库一键导出为Excel表格的实例
2016/12/30 Python
基于python爬虫数据处理(详解)
2017/06/10 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
CSS3 制作绽放的莲花采用效果叠加实现
2013/01/31 HTML / CSS
HTML5 MiranaVideo播放器 (代码开源)
2010/06/11 HTML / CSS
管理部部长岗位职责
2013/12/05 职场文书
高三语文复习计划
2015/01/19 职场文书
治理商业贿赂工作总结
2015/08/10 职场文书
2016年先进教师个人事迹材料
2016/02/26 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书
Go timer如何调度
2021/06/09 Golang
分享Python获取本机IP地址的几种方法
2022/03/17 Python