export function compressPicture(file) {return new Promise((resolve, reject) => {let width, height;let MAX_WH = 800;let image = new Image()image.onload = () => {if (image.height > MAX_WH) {// 宽度等比例缩放 *=image.width *= MAX_WH / image.height;image.height = MAX_WH;}if (image.width > MAX_WH) {// 宽度等比例缩放 *=image.height *= MAX_WH / image.width;image.width = MAX_WH;}let canvas = document.createElement('canvas'); // 创建Canvas对象(画布)let context = canvas.getContext('2d');canvas.width = width = image.width;canvas.height = height = image.height;context.clearRect(0, 0, canvas.width, canvas.height);context.drawImage(image, 0, 0, image.width, image.height);const base64Url = canvas.toDataURL(file.type, 0.3);resolve(base64Url)}image.onerror = () => {reject()}image.src = file.url;})
}

javascript压缩上传图片相关推荐

  1. Javascript验证上传图片大小[前台处理]

    2019独角兽企业重金招聘Python工程师标准>>> 需求分析: 在做上传图片的时候,如果不限制上传图片大小,后果非常的严重.那么我们怎样才可以解决一个棘手的问题呢?有两种方式: ...

  2. javaScript 压缩混淆反混淆

    javaScript 压缩混淆反混淆 压缩混淆的意义 1. 压缩 2. 混淆 如何压缩混淆 案例 Unicode转义序列(Unicode Escape Sequence) 压缩代码(Compact c ...

  3. ArcGIS API for JavaScript压缩版(compact)与标准版的区别

    文章目录 前言 区别一 区别二 参考链接 前言 在我们下载下来的API文件中可以看到里面包含了两个版本,一个是常用的标准版,另一个是压缩版. 如果到各自文件夹里面对比看的话,除了两个版本的init.j ...

  4. JavaScript怎么上传图片

    在XMLHttpRequest Level2出台之前,大多数的异步上传图片都是利用iframe去实现的. 至于具体的实现细节,我就不在这边啰嗦的,Google一下就有文章谈这个东西. 这次主要说说,怎 ...

  5. Dcloud+mui 压缩上传图片到服务器

    chooseImgFromAlbums选择图片 chooseImgFromPictures 拍照 changeToLocalUrl 转换成可用的路径 uploadpic.compressImg 压缩图 ...

  6. JavaScript 压缩 加密 解密

    代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3. ...

  7. 手机网页版JS压缩上传图片--base64位 兼容IOS和安卓

    首先,我用到了一款插件,是纯JS压缩上传插件,第一次用CSDN,不太会用,我把插件所有代码拷贝在文章末尾. 加载JS插件<script src="__JS__/dist/lrz.mob ...

  8. uni-app开发微信小程序,H5 关于压缩上传图片的问题

    文章目录 前言 一.为什么要压缩图片 二.图片压缩方式 1. 微信小程序​​​​​​​ 2. H5 总结 前言 关于微信小程序.H5兼容性问题,今天就压缩以及上传图片做一个可实现方法的简要阐述. 一. ...

  9. js如何给php传图片,JavaScript怎么上传图片

    在XMLHttpRequest Level2出台之前,大多数的异步上传图片都是利用iframe去实现的. 至于具体的实现细节,我就不在这边??碌模?oogle一下就有文章谈这个东西. 这次主要说说,怎 ...

最新文章

  1. linux curl 使用详解 常见应用
  2. 无法识别的属性“targetFramework”的解决方法
  3. mysql 代理作业_查看SQLServer 代理作业的历史信息
  4. IOCP 浅析与实例
  5. 三句代码调整进程优先级
  6. 父表ID查询子表 所属name字符拼接 for xml path
  7. SAP Spartacus里几个和Focus相关的directive的继承关系以及元素focus是如何实现的
  8. elemntui icon 大小_自定义elementui中的图标
  9. CSS3 移动端开发技巧
  10. 【BZOJ4547】【HDU5171】小奇的集合,暴力+矩阵乘法
  11. 斯坦福 CS183 Peter Thiel 创业课资料整理
  12. 详解:Oracle数据库介绍 、字符、类型、语言
  13. C++公有、私有、保护继承的关系
  14. ERP系统和ERP软件的介绍
  15. 傲腾内存 可以用ghost系统_英特尔傲腾是什么?让你秒懂英特尔傲腾技术
  16. 手游外挂入侵(一)某助手加速器实现原理探究
  17. 163邮箱给gmail邮箱发邮件,gmail邮箱收不到
  18. 金山助手流氓软件-被进程sjk_daemon.exe坑死
  19. 宏睿达认证计费管理系统(支持微信公众号)使用说明,爱快路由认证计费系统
  20. FreeSwitch_CallCenter_Tiers

热门文章

  1. 安卓开发系列(一)安卓开发环境的搭建
  2. 烟囱排放污染物烟羽扩散模型
  3. 常见小票打印机打印故障及解决方法汇总视频教程
  4. 如何在本地安装NuGet包.nupkg文件?
  5. 【附源码】Python计算机毕业设计水库洪水预报调度系统
  6. 【干货收藏】测试人员必看的经典书籍
  7. 小程序安卓和ios使用自定义字体,解决安卓不生效问题
  8. python对字符串按照ascII码顺序排序
  9. osc 博客搜索的算法的问题
  10. Docker容器之Docker Toolbox下配置国内镜像源-阿里云加速器(Windows)