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常用代码
Nov 23 PHP
SMARTY学习手记
Jan 04 PHP
php与mysql建立连接并执行SQL语句的代码
Jul 04 PHP
用PHP来计算某个目录大小的方法
Apr 01 PHP
PHP中比较时间大小实例
Aug 21 PHP
PHP性能分析工具XHProf安装使用教程
May 13 PHP
php中array_multisort对多维数组排序的方法
Jun 21 PHP
PHP统计当前在线用户数实例讲解
Oct 21 PHP
thinkPHP实现将excel导入到数据库中的方法
Apr 22 PHP
Thinkphp框架开发移动端接口(2)
Aug 18 PHP
php魔术方法功能与用法实例分析
Oct 19 PHP
PHP创建XML接口示例
Jul 04 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实现用户在线时间统计详解
2011/10/08 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
destoon出现验证码不显示时的紧急处理方法
2014/08/22 PHP
js右键菜单效果代码
2007/07/21 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
2013/08/19 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
jquery中toggle函数交替使用问题
2015/06/22 Javascript
EditPlus中的正则表达式 实战(2)
2016/12/15 Javascript
微信小程序 tabs选项卡效果的实现
2017/01/05 Javascript
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
一个简易的js图片轮播效果
2017/07/22 Javascript
使用D3.js制作图表详解
2017/08/13 Javascript
vue内置指令详解
2018/04/03 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
小程序多图列表实现性能优化的方法步骤
2019/05/28 Javascript
vue 使用鼠标滚动加载数据的例子
2019/10/31 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
2020/09/05 Javascript
[03:08]Ti4观战指南上
2014/07/07 DOTA
[02:26]2016国际邀请赛8月3日开战 中国军团出征西雅图
2016/08/02 DOTA
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
Python实现字符串中某个字母的替代功能
2019/10/21 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
使用HTML5的Notification API制作web通知的教程
2015/05/08 HTML / CSS
HTML5表单验证特性(知识点小结)
2020/03/10 HTML / CSS
中科软笔试题和面试题
2014/10/07 面试题
毕业生自我鉴定
2013/11/05 职场文书
电大毕业生自我鉴定
2013/11/10 职场文书
结婚喜宴家长答谢词
2014/01/15 职场文书
股份合作协议书
2014/09/10 职场文书
电影开国大典观后感
2015/06/04 职场文书
2016机关干部作风建设心得体会
2016/01/21 职场文书
详解CSS故障艺术
2021/05/25 HTML / CSS
Go结合Gin导出Mysql数据到Excel表格
2022/08/05 Golang