/**
File图片类型
callback回调函数,里面传压缩后的File
**/

function compress(file,callback){var ms = file.size/1024;console.log("压缩前的大小"+file.size);if(ms>249) {var ready = new FileReader();ready.onload = function () {// ready.readAsDataURL(file);var path = this.result;var img = new Image();img.onload = function () {var that = this;var w = that.width,h = that.heightscale = w / h;if (w > 1000) {// 宽大大于1000的话。w = 1000;h = w / scale;}var quality = 0.5; // quality 值越小,绘制出的图片越模糊  图片大小为10000,压缩为0.2 大小为2000,压缩1,大小为4000,压缩0.5// 生成canvasvar canvas = document.createElement('canvas');var ctx = canvas.getContext('2d');// 创建属性节点var anw = document.createAttribute("width");anw.nodeValue = w;var anh = document.createAttribute("height");anh.nodeValue = h;canvas.setAttributeNode(anw);canvas.setAttributeNode(anh);ctx.drawImage(that, 0, 0, w, h);// 将base64的图片数据转换成blobvar urlData = canvas.toDataURL('image/jpeg', quality);var arr = urlData.split(","), mime = arr[0].match(/:(.*?);/)[1],bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);while (n--) {u8arr[n] = bstr.charCodeAt(n);}var blobfile = new Blob([u8arr], {type: mime});console.log("压缩前的大小"+blobfile.size);// callbackcallback(blobfile);}img.src = this.result;console.log(img.src);}ready.readAsDataURL(file);}else {callback(file);
}
}

js 前端 图片压缩相关推荐

  1. JS前端图片压缩上传

    JS前端图片压缩上传重点知识 最近在做一个手机端的图片上传,写了一个比较符合自己要求的方法,可供参考 在做这个功能模块时,我遇到了以下问题,都花费了大量时间: 1. 不知道怎么压缩图片,(代码和方法) ...

  2. 前端图片压缩上传(纯js的质量压缩,非长宽压缩)

    前端图片压缩上传(纯js的质量压缩,非长宽压缩) 此demo为大于1M对图片进行压缩上传 若小于1M则原图上传,可以根据自己实际需求更改. demo源码如下: <!DOCTYPE html> ...

  3. 谈谈JS 的图片压缩

    前言 说起图片压缩,大家想到的或者平时用到的很多工具都可以实现,例如,客户端类的有图片压缩工具 PPDuck3, JS 实现类的有插件 compression.js ,亦或是在线处理类的 OSS 上传 ...

  4. 前端图片压缩上传(压缩篇)

    为什么说这是一篇比较适合小白的前端图片压缩文章呢?因为我也是一个刚工作半年的前端小白,最近接到了一个前端图片压缩上传的任务,通过各种百度博客完成了这项任务,但是任务完成后对各种技术细节却还不是特别理解 ...

  5. 移动前端—图片压缩上传实践

    在做移动端图片上传的时候,用户传的都是手机本地图片,而本地图片一般都相对比较大,拿iphone6来说,平时拍很多图片都是一两M的,如果直接这样上传,那图片就太大了,如果用户用的是移动流量,完全把图片上 ...

  6. 前端图片压缩解决办法

    文章の目录 问题产生背景 解决办法 1.使用纯 js 解决 2.插件 js-image-compressor 写在最后 问题产生背景 在某一h5的项目,要求上传的图片格式为 base64 , 问题是用 ...

  7. 使用node.js实现图片压缩

    1 images模块介绍 处理图片往往会遇到图片压缩的问题,使用Windows系统自带的画图软件或者其它图像处理软件一般都能够实现图片的压缩,但是只能是单张处理,如果涉及到大批量的图片压缩的话,一张一 ...

  8. 前端图片压缩 pngquanty

    进行前端开发,必然会用到图片压缩,在尽可能小的改变图片视觉效果前提下,尽可能大的压缩图片大小,进行png 图片压缩常用 pngquant,在服务器上 上传压缩过后的图片,以节省载宽Official w ...

  9. JS实现图片压缩,兼容ios,

    代码参考的七牛官方compress.js(https://github.com/qiniu/js-sdk/blob/master/src/compress.js) 但是七牛官方的压缩,在ios下我试着 ...

最新文章

  1. 事务隔离机制原理分析以及是否可以防止订单超卖
  2. vue 根据后台数据 判断显示_【开源】el-admin 后台管理系统,v1.9 发布
  3. 学习笔记84—[深度学习]神经网络反向传播(BackPropagation)
  4. Docker创建Dockerfile脚本构建jdk1.8镜像并启动容器示例
  5. DCMTK:DcmItem类的测试程序
  6. QT的QScxmlCppDataModel类的使用
  7. 深度学习模型大合集:GitHub 趋势榜第一,已斩获 8000+ 星
  8. 基于python的request库,模拟登录csdn博客
  9. mysql中的blob和text区别
  10. BUNUO自动化框架图
  11. HttpClient 4.0.x Tips
  12. 【区块链】Decentraland 挖矿教学
  13. 《创业维艰》笔记 2
  14. 2020 03 15 蚂蚁金服实习电话一面
  15. boxy 你用了吗??
  16. 草根学Python(七) 迭代器和生成器
  17. 【第26天】给定 n 个元素的升序数组nums,求实现一个函数在nums中寻找target的下标 | 初识二分查找
  18. 蓝宝石RX590gme白金刷580bios,完美解决
  19. jira--研发管理-敏捷。
  20. 【面试题】-100盏灯

热门文章

  1. C语言实现DNS请求器
  2. 蓝桥杯真题 17省2-等差素数列 2,3,5,7,11,13,....是素数序列。 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。 上边的数列公差为30
  3. Elasticsearch:使用 function_score 及 script_score 定制搜索结果的分数
  4. 千千静听歌词窗体分析
  5. Eclipse安装Sonar插件SonarLint
  6. 基尼系数和信息熵的概念和公式
  7. 阿里云——云数据库管理与数据迁移
  8. 故地重游,熟悉又陌生。
  9. 网络安全——HTTP头部注入
  10. 记录 vue-cli3 配置uat环境 遇到的打包问题