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 相关文章推荐
第三节 定义一个类 [3]
Oct 09 PHP
十天学会php之第四天
Oct 09 PHP
基于PHP对XML的操作详解
Jun 07 PHP
php后台如何避免用户直接进入方法实例
Oct 15 PHP
php生成数组的使用示例 php全组合算法
Jan 16 PHP
php $_SESSION会员登录实例分享
Jan 19 PHP
php利用header函数下载各种文件
Aug 24 PHP
PHP常用的三种设计模式
Feb 17 PHP
php+redis实现商城秒杀功能
Nov 19 PHP
PHP实现用session来实现记录用户登陆信息
Oct 15 PHP
Laravel解决nesting level错误和隐藏index.php的问题
Oct 12 PHP
laravel利用中间件做防非法登录和权限控制示例
Oct 21 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 编写的 25个游戏脚本
2009/05/11 PHP
一步一步学习PHP(3) php 函数
2010/02/15 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
浅谈php常用的7大框架的优缺点
2020/07/20 PHP
JavaScript 应用类库代码
2008/06/02 Javascript
JavaScript中实现块作用域的方法
2010/04/01 Javascript
原生javascript获取元素样式属性值的方法
2010/12/25 Javascript
javascript当中的代码嗅探扩展原生对象和原型(prototype)
2013/01/11 Javascript
cookie中的path与domain属性详解
2013/12/18 Javascript
JS和Jquery获取和修改label的值的示例代码
2014/01/15 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
js实现点击按钮复制文本功能
2020/07/20 Javascript
vuex与组件联合使用的方法
2018/05/10 Javascript
详解关于vue-area-linkage走过的坑
2018/06/27 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
Angular8路由守卫原理和使用方法
2019/08/29 Javascript
ES6的异步操作之promise用法和async函数的具体使用
2019/12/06 Javascript
js实现html滑动图片拼图验证
2020/06/24 Javascript
通过实例解析JavaScript常用排序算法
2020/09/02 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
python3.5使用tkinter制作记事本
2016/06/20 Python
Python文本统计功能之西游记用字统计操作示例
2018/05/07 Python
django 修改server端口号的方法
2018/05/14 Python
详解基于django实现的webssh简单例子
2018/07/17 Python
python读写Excel表格的实例代码(简单实用)
2019/12/19 Python
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
鼓励运动员的广播稿
2014/02/08 职场文书
小学生竞选班长演讲稿
2014/04/24 职场文书
派出所正风肃纪剖析材料
2014/10/10 职场文书
见习报告格式要求
2014/11/04 职场文书
mybatis 解决从列名到属性名的自动映射失败问题
2021/06/30 Java/Android