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 用sock技术发送邮件的函数
Jul 21 PHP
利用PHP函数计算中英文字符串长度的方法
Nov 11 PHP
php实现的通用图片处理类
Mar 24 PHP
PHP5.2下preg_replace函数的问题
May 08 PHP
PHP实现的购物车类实例
Jun 17 PHP
PHP中的Session对象如何使用
Sep 25 PHP
php验证邮箱和ip地址最简单方法汇总
Oct 30 PHP
PHP获取当前执行php文件名的代码
Mar 02 PHP
PHP封装的PDO数据库操作类实例
Jun 21 PHP
PHP实现根据密码长度显示安全条
Jul 04 PHP
php实现网页端验证码功能
Jul 11 PHP
PHP获取学生成绩的方法
Nov 17 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
用缓存实现静态页面的测试
2006/12/06 PHP
深入理解PHP原理之异常机制
2010/08/21 PHP
PHP永久登录、记住我功能实现方法和安全做法
2015/04/27 PHP
TP3.2框架分页相关实现方法分析
2020/06/03 PHP
在线游戏大家来找茬II
2006/09/30 Javascript
javascript 显示当前系统时间代码
2009/12/28 Javascript
JavaScript学习笔记(十七)js 优化
2010/02/04 Javascript
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
js导航栏单击事件背景变换示例代码
2014/01/13 Javascript
js实现图片轮播效果
2015/12/19 Javascript
BootStrap下jQuery自动完成的样式调整
2016/05/30 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
2016/06/30 Javascript
微信小程序request出现400的问题解决办法
2017/05/23 Javascript
Nodejs调用Dll模块的方法
2018/09/17 NodeJs
小程序实现授权登陆的解决方案
2018/12/02 Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
2020/07/23 Javascript
详解vue实现坐标拾取器功能示例
2020/11/18 Vue.js
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
[45:18]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第一场
2018/04/04 DOTA
Pyqt实现无边框窗口拖动以及窗口大小改变
2018/04/19 Python
详解关于Django中ORM数据库迁移的配置
2018/10/08 Python
手动安装python3.6的操作过程详解
2020/01/13 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
2020/05/09 Python
PyQt5 控件字体样式等设置的实现
2020/05/13 Python
python+flask编写一个简单的登录接口
2020/11/13 Python
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
英国皇家造币厂:The Royal Mint
2018/10/05 全球购物
与世界上最好的跑步专业品牌合作:Fleet Feet
2019/03/22 全球购物
介绍一下#error预处理
2015/09/25 面试题
培训协议书范本
2014/04/22 职场文书
道路施工安全责任书
2014/07/24 职场文书
银行转正自我鉴定
2014/09/29 职场文书
毕业横幅标语
2014/10/08 职场文书
2016年教师师德师风心得体会
2016/01/12 职场文书
微信小程序 WeUI扩展组件库的入门教程
2022/04/21 Javascript