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编码规范-php coding standard
Mar 16 PHP
PHP ajax 分页类代码
Nov 13 PHP
PHP 获取远程文件内容的函数代码
Mar 24 PHP
分享一下贝贝成长进度的php代码
Sep 14 PHP
PHP编码转换
Nov 05 PHP
基于Linux调试工具strace与gdb的常用命令总结
Jun 03 PHP
使用Linux五年积累的一些经验技巧
Jun 20 PHP
eaglephp使用微信api接口开发微信框架
Jan 09 PHP
php将字符串随机分割成不同长度数组的方法
Jun 01 PHP
WordPress中用于获取文章作者与分类信息的方法整理
Dec 17 PHP
PHP新特性之字节码缓存和内置服务器
Aug 11 PHP
PHP删除字符串中非字母数字字符方法总结
Jan 20 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+memcache实现消息队列案例分享
2014/05/21 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
2015/10/09 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
javascript 字符串连接的性能问题(多浏览器)
2008/11/18 Javascript
google 搜索框添加关键字实现代码
2010/04/24 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
2013/08/08 Javascript
window.open()实现post传递参数
2015/03/12 Javascript
移动端JQ插件hammer使用详解
2015/07/03 Javascript
解决拦截器对ajax请求的拦截实例详解
2016/12/21 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
vue发送ajax请求详解
2018/10/09 Javascript
微信小程序制作表格的方法
2019/02/14 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
[04:45]DOTA2上海特级锦标赛主赛事第四日RECAP
2016/03/06 DOTA
[32:07]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第一场 12.16
2020/12/17 DOTA
python从ftp下载数据保存实例
2013/11/20 Python
Python中变量交换的例子
2014/08/25 Python
python创建进程fork用法
2015/06/04 Python
判断网页编码的方法python版
2016/08/12 Python
Python内建函数之raw_input()与input()代码解析
2017/10/26 Python
Django 日志配置按日期滚动的方法
2019/01/31 Python
python实现可变变量名方法详解
2019/07/01 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
关于Numpy数据类型对象(dtype)使用详解
2019/11/27 Python
Python 2种方法求某个范围内的所有素数(质数)
2020/01/31 Python
如何使用python切换hosts文件
2020/04/29 Python
意大利领先的线上奢侈品销售电商:Eleonora Bonucci
2017/10/17 全球购物
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
Yahoo-PHP面试题3
2012/01/14 面试题
办公设备采购方案
2014/03/16 职场文书
老人祝寿主持词
2014/03/28 职场文书
电子信息工程专业求职信
2014/06/28 职场文书
小学生感恩父母演讲稿
2014/08/28 职场文书
React如何创建组件
2021/06/27 Javascript