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 相关文章推荐
PHP通过header实现文本文件下载的代码
Aug 08 PHP
在PHP中利用wsdl创建标准webservice的实现代码
Dec 07 PHP
基于PHP静态类的原罪详解
May 06 PHP
php function用法如何递归及return和echo区别
Mar 07 PHP
php生成xml时添加CDATA标签的方法
Oct 17 PHP
php查询相似度最高的字符串的方法
Mar 12 PHP
PHP中的命名空间详细介绍
Jul 02 PHP
php基于session实现数据库交互的类实例
Aug 03 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
Apr 10 PHP
laradock环境docker-compose操作详解
Jul 29 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
May 29 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
PHP导入导出Excel代码
2015/07/07 PHP
Yii模型操作之criteria查找数据库的方法
2016/07/15 PHP
php实现跨域提交form表单的方法【2种方法】
2016/10/17 PHP
jquery $.ajax入门应用一
2008/11/19 Javascript
通过DOM脚本去设置样式信息
2010/09/19 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器(优化篇)
2013/06/28 Javascript
jQuery如何将选中的对象转化为原始的DOM对象
2014/06/09 Javascript
JavaScript截取字符串的2个函数介绍
2014/08/27 Javascript
学习JavaScript设计模式之迭代器模式
2016/01/19 Javascript
浅谈JavaScript的全局变量与局部变量
2016/06/10 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
2018/09/03 Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
2019/03/29 Javascript
Python中模块pymysql查询结果后如何获取字段列表
2017/06/05 Python
在python3.5中使用OpenCV的实例讲解
2018/04/02 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
Python3列表List入门知识附实例
2020/02/09 Python
各大浏览器 CSS3 和 HTML5 兼容速查表 图文
2010/04/01 HTML / CSS
Woolworth官网:澳洲第一大超市
2017/06/25 全球购物
Skyscanner波兰:廉价航班
2017/11/07 全球购物
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
C#笔试题集合
2013/06/21 面试题
建筑行业的大学生自我评价
2013/12/08 职场文书
电子专业毕业生自荐信
2014/05/25 职场文书
民生工作实施方案
2014/05/31 职场文书
低碳环保口号
2014/06/12 职场文书
县政府领导班子“四风”方面突出问题整改措施
2014/09/23 职场文书
乡镇群众路线整改落实情况汇报
2014/10/28 职场文书
2015年度工程师评职称工作总结
2015/10/14 职场文书
vue项目两种方式实现竖向表格的思路分析
2021/04/28 Vue.js
SpringCloud项目如何解决log4j2漏洞
2022/04/10 Java/Android