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中使用Oracle数据库(4)
Oct 09 PHP
通过文字传递创建的图形按钮
Oct 09 PHP
fleaphp rolesNameField bug解决方法
Apr 23 PHP
php 缩略图实现函数代码
Jun 23 PHP
php常用的url处理函数总结
Nov 19 PHP
PHP生成不重复标识符的方法
Nov 21 PHP
php获取YouTube视频信息的方法
Feb 11 PHP
YII Framework框架教程之国际化实现方法
Mar 14 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
Mar 17 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
Aug 25 PHP
Yii1.1框架实现PHP极光推送消息通知功能
Sep 06 PHP
thinkPHP框架中layer.js的封装与使用方法示例
Jan 18 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 Switch 语句之学习笔记
2013/09/21 PHP
JavaScript国旗变换效果代码
2008/08/13 Javascript
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
关于javaScript注册click事件传递参数的不成功问题
2014/07/18 Javascript
JS实现控制表格行内容垂直对齐的方法
2015/03/30 Javascript
JavaScript操作XML文件之XML读取方法
2015/06/09 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
AngularJS基础 ng-paste 指令简单示例
2016/08/02 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
2017/12/25 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
使用validate.js实现表单数据提交前的验证方法
2018/09/04 Javascript
详解Vue、element-ui、axios实现省市区三级联动
2019/05/07 Javascript
laypage.js分页插件使用方法详解
2019/07/27 Javascript
详解Vue3中对VDOM的改进
2020/04/23 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
2021/01/20 Javascript
Python找出最小的K个数实例代码
2018/01/04 Python
tensorflow学习笔记之简单的神经网络训练和测试
2018/04/15 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
djano一对一、多对多、分页实例代码
2019/08/16 Python
python的scipy实现插值的示例代码
2019/11/12 Python
使用TensorFlow搭建一个全连接神经网络教程
2020/02/06 Python
pytorch实现从本地加载 .pth 格式模型
2020/02/14 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
2020/02/24 Python
Python处理mysql特殊字符的问题
2020/03/02 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
django有哪些好处和优点
2020/09/01 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
培训演讲稿范文
2014/01/12 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
未受刑事制裁公证证明
2014/09/20 职场文书
领导干部作风建设总结
2014/10/23 职场文书
2015年全民国防教育日活动总结
2015/03/23 职场文书
房地产置业顾问岗位职责
2015/04/11 职场文书
Java实现房屋出租系统详解
2021/10/05 Java/Android