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中对xml读取的相关函数的介绍一
Jun 05 PHP
php下实现在指定目录搜索指定类型文件的函数
Oct 03 PHP
PHP XML操作类DOMDocument
Dec 16 PHP
简单的php写入数据库类代码分享
Jul 26 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
Jan 27 PHP
PHP使用逆波兰式计算工资的方法
Jul 29 PHP
编写PHP脚本来实现WordPress中评论分页的功能
Dec 10 PHP
php简单备份与还原MySql的方法
May 09 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
Sep 09 PHP
php格式文件打开的四种方法
Feb 24 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
May 15 PHP
laravel与thinkphp之间的区别与优缺点
Mar 02 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 session有效期session.gc_maxlifetime
2011/04/20 PHP
PHP jQuery表单,带验证具体实现方法
2014/02/15 PHP
基于PHP如何把汉字转化为拼音
2015/12/11 PHP
46 个非常有用的 PHP 代码片段
2016/02/16 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
JSON对象 详解及实例代码
2016/10/18 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
2016/12/02 Javascript
js实现下拉框效果(select)
2017/03/28 Javascript
JavaScript数据结构之优先队列与循环队列实例详解
2017/10/27 Javascript
jQuery实现判断上传图片类型和大小的方法示例
2018/04/11 jQuery
js中的 || 与 && 运算符详解
2018/05/24 Javascript
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
Vue框架下引入ActiveX控件的问题解决
2019/03/25 Javascript
vue用BMap百度地图实现即时搜索功能
2019/09/26 Javascript
vue移动端弹起蒙层滑动禁止底部滑动操作
2020/07/22 Javascript
Python3.0与2.X版本的区别实例分析
2014/08/25 Python
Python基础语法(Python基础知识点)
2016/02/28 Python
Python处理JSON数据并生成条形图
2016/08/05 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
python+selenium实现登录账户后自动点击的示例
2017/12/22 Python
Pycharm导入Python包,模块的图文教程
2018/06/13 Python
Python实现的简单排列组合算法示例
2018/07/04 Python
Django 中间键和上下文处理器的使用
2019/03/17 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
2019/09/20 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
python numpy实现rolling滚动案例
2020/06/08 Python
俄罗斯儿童和青少年服装、鞋子及配件的在线商店:Orby
2020/02/20 全球购物
报到证丢失证明
2014/01/11 职场文书
2015年前台文员工作总结
2015/05/18 职场文书
开学第一天的感想
2015/08/10 职场文书
Python实现智慧校园自动评教全新版
2021/06/18 Python
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏
详解Vue3使用axios的配置教程
2022/04/29 Vue.js