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 相关文章推荐
程序员编程十条戒律
Jul 09 PHP
允许phpmyadmin空密码登录的配置方法
May 29 PHP
解析php中如何直接执行SHELL
Jun 28 PHP
php简单实现MVC
Feb 05 PHP
纯PHP代码实现支付宝批量付款
Dec 24 PHP
PHP批量去除BOM头内容信息代码
Mar 11 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
Jul 01 PHP
php添加数据到xml文件的简单例子
Sep 08 PHP
ThinkPHP框架表单验证操作方法
Jul 19 PHP
PHP检测接口Traversable用法详解
Dec 29 PHP
php ajax confirm 删除实例详解
Mar 06 PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
May 30 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
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
让你成为更出色的PHP开发者的10个技巧
2011/02/25 PHP
实例讲解php实现多线程
2019/01/27 PHP
javascript的trim,ltrim,rtrim自定义函数
2008/09/21 Javascript
JQuery Tips(2) 关于$()包装集你不知道的
2009/12/14 Javascript
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
jquery异步调用页面后台方法‏(asp.net)
2011/03/01 Javascript
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
jQuery基于ajax实现带动画效果无刷新柱状图投票代码
2015/08/10 Javascript
原生JS简单实现ajax的方法示例
2016/11/29 Javascript
JS解决position:sticky的兼容性问题的方法
2017/10/17 Javascript
vue-router实现组件间的跳转(参数传递)
2017/11/07 Javascript
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
JS匿名函数和匿名自执行函数概念与用法分析
2018/03/16 Javascript
基于Koa2写个脚手架模拟接口服务的方法
2018/11/27 Javascript
Node.js之删除文件夹(含递归删除)代码实例
2019/09/09 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
JavaScript实现矩形块大小任意缩放
2020/08/25 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
2020/11/05 Javascript
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
python实现字符串和日期相互转换的方法
2015/05/13 Python
Python排序搜索基本算法之冒泡排序实例分析
2017/12/09 Python
python tkinter图形界面代码统计工具(更新)
2019/09/18 Python
深入浅析Python 中的sklearn模型选择
2019/10/12 Python
Python 生成一个从0到n个数字的列表4种方法小结
2019/11/28 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
2020/02/28 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
Python 操作 MySQL数据库
2020/09/18 Python
pandas 按日期范围筛选数据的实现
2021/02/20 Python
html5 css3网站菜单实现代码
2013/12/23 HTML / CSS
学生打架检讨书
2014/02/14 职场文书
网吧最新创业计划书范文
2014/03/27 职场文书
mybatis调用sqlserver存储过程返回结果集的方法
2021/05/08 SQL Server
浅谈Python数学建模之线性规划
2021/06/23 Python
python_tkinter弹出对话框创建
2022/03/20 Python
前端与RabbitMQ实时消息推送未读消息小红点实现示例
2022/07/23 Java/Android