PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例


Posted in PHP onJune 17, 2019

本文实例讲述了PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类。分享给大家供大家参考,具体如下:

class AutoImage{
  private $image;
  public function resize($src, $width, $height){
    //$src 就是 $_FILES['upload_image_file']['tmp_name']
    //$width和$height是指定的分辨率
    //如果想按指定比例放缩,可以将$width和$height改为$src的指定比例
    $this->image = $src;
    $info = getimagesize($src);//获取图片的真实宽、高、类型
    if($info[0] == $width && $info[1] == $height){
      //如果分辨率一样,直接返回原图
      return $src;
    }
    switch ($info['mime']){
      case 'image/jpeg':
        header('Content-Type:image/jpeg');
        $image_wp = imagecreatetruecolor($width, $height);
        $image_src = imagecreatefromjpeg($src);
        imagecopyresampled($image_wp, $image_src, 0, 0, 0, 0, $width, $height, $info[0], $info[1]);
        imagedestroy($image_src);
        imagejpeg($image_wp,$this->image);
        break;
      case 'image/png':
        header('Content-Type:image/png');
        $image_wp = imagecreatetruecolor($width, $height);
        $image_src = imagecreatefrompng($src);
        imagecopyresampled($image_wp, $image_src, 0, 0, 0, 0, $width, $height, $info[0], $info[1]);
        imagedestroy($image_src);
        imagejpeg($image_wp,$this->image);
        break;
      case 'image/gif':
        header('Content-Type:image/gif');
        $image_wp = imagecreatetruecolor($width, $height);
        $image_src = imagecreatefromgif($src);
        imagecopyresampled($image_wp, $image_src, 0, 0, 0, 0, $width, $height, $info[0], $info[1]);
        imagedestroy($image_src);
        imagejpeg($image_wp,$this->image);
        break;
    }
    return $this->image;
  }
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
pdo中使用参数化查询sql
Aug 11 PHP
利用PHP实现图片等比例放大和缩小的方法详解
Jun 06 PHP
PHP中将ip地址转成十进制数的两种实用方法
Aug 15 PHP
PHP采用get获取url汉字出现乱码的解决方法
Nov 13 PHP
php从数组中随机选择若干不重复元素的方法
Mar 14 PHP
php按字符无乱码截取中文的方法
Mar 27 PHP
浅谈PHP中Stream(流)
Jun 08 PHP
PHP中余数、取余的妙用
Jun 29 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
Oct 17 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
Dec 06 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
May 09 PHP
PHP 并发场景的几种解决方案
Jun 14 #PHP
PHP 实现文件压缩解压操作的方法
Jun 14 #PHP
php反射学习之依赖注入示例
Jun 14 #PHP
php反射学习之不用new方法实例化类操作示例
Jun 14 #PHP
PHP反射学习入门示例
Jun 14 #PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
Jun 14 #PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
Jun 14 #PHP
You might like
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
2014/07/28 PHP
Javascript 继承机制实例
2009/08/12 Javascript
jQuery对象[0]是什么含义?
2010/07/31 Javascript
JavaScript中函数声明优先于变量声明的实例分析
2012/03/01 Javascript
解决jquery操作checkbox火狐下第二次无法勾选问题
2014/02/10 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
2014/11/13 Javascript
JavaScript中的toUTCString()方法使用详解
2015/06/12 Javascript
Jquery和BigFileUpload实现大文件上传及进度条显示
2016/06/27 Javascript
各式各样的导航条效果css3结合jquery代码实现
2016/09/17 Javascript
关于vuex的学习实践笔记
2017/04/05 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
vue.js 实现点击按钮动态添加li的方法
2018/09/07 Javascript
npm的lock机制解析
2019/06/20 Javascript
countUp.js实现数字滚动效果
2019/10/18 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
Node.js开发之套接字(socket)编程入门示例
2019/11/05 Javascript
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
JS绘图Flot如何实现动态可刷新曲线图
2020/10/16 Javascript
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
Python+selenium点击网页上指定坐标的实例
2019/07/05 Python
简单了解python的内存管理机制
2019/07/08 Python
学习和使用python的13个理由
2019/07/30 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
python实现opencv+scoket网络实时图传
2020/03/20 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
DHC美国官网:日本通信销售第一的化妆品品牌
2017/11/12 全球购物
英国手机零售商:Metrofone
2019/03/18 全球购物
澳洲的UGG雪地靴超级市场:Uggs.com.au
2020/04/06 全球购物
北承题目(C++)
2012/05/16 面试题
化学学院毕业生自荐信范文
2013/12/17 职场文书
生日礼品店创业计划书范文
2014/03/21 职场文书
物流管理专业毕业生求职信
2014/03/23 职场文书
python 实现的截屏工具
2021/05/08 Python