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.ini中文版
Oct 09 PHP
用PHP制作的意见反馈表源码
Mar 11 PHP
从php核心代码分析require和include的区别
Jan 02 PHP
解析thinkphp中的导入文件标签
Jun 20 PHP
PHP函数getenv简介和使用实例
May 12 PHP
php+ajax实现的点击浏览量加1
Apr 16 PHP
win平台安装配置Nginx+php+mysql 环境
Jan 12 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
Apr 23 PHP
php微信高级接口群发 多客服
Jun 23 PHP
php及codeigniter使用session-cookie的方法(详解)
Apr 06 PHP
PHP 中常量的知识整理
Apr 14 PHP
php实现映射操作实例详解
Oct 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实现数组筛选奇数和偶数示例
2014/04/11 PHP
PHP+AJAX实现投票功能的方法
2015/09/28 PHP
ThinkPHP中limit()使用方法详解
2016/04/19 PHP
TP5框架请求响应参数实例分析
2019/10/17 PHP
Locate a File Using a File Open Dialog Box
2007/06/18 Javascript
javascript中this做事件参数相关问题解答
2013/03/17 Javascript
js设置组合快捷键/tabindex功能的方法
2013/11/21 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
2013/12/17 Javascript
ExtJS4 表格的嵌套 rowExpander应用
2014/05/02 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
js实现页面刷新滚动条位置不变
2016/11/27 Javascript
JSON 数据详解及实例代码分析
2017/01/20 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
vue-router 组件复用问题详解
2018/01/22 Javascript
Vue2.0仿饿了么webapp单页面应用详细步骤
2018/07/08 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
2020/04/28 Javascript
js实现车辆管理系统
2020/08/26 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
python在linux中输出带颜色的文字的方法
2014/06/19 Python
Pthon批量处理将pdb文件生成dssp文件
2015/06/21 Python
对pandas的层次索引与取值的新方法详解
2018/11/06 Python
Python APScheduler执行使用方法详解
2020/12/10 Python
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
生产车间主管岗位职责
2013/12/28 职场文书
《在家里》教后反思
2014/03/01 职场文书
创意广告词
2014/03/17 职场文书
专题组织生活会方案
2014/06/15 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
小学班级管理心得体会
2016/01/07 职场文书
2016年党员读书月活动总结
2016/04/06 职场文书
Go语言应该什么情况使用指针
2021/07/25 Golang