//拍照方法takePhoto:function(){PAD.device.TakePhoto(function (data) {var _this = this//data 为Pad拍照返回base64_this.image = "data:image/jpg;base64," + data;// 压缩时注意,返回的base64如果没带前缀"data:image/jpg;base64," 一定要加上,不然压缩不了// 500为压缩后的图片宽度_this.changeImgSize(_this.image, 500, function (newBase64) {console.log('压缩前',data.length)console.log('压缩后',newBase64.length)})})}
                 //压缩方法changeImgSize: function (base64, w, callback) {var newImage = new Image();// quality 为压缩的像素 越低压缩的越小,图片越模糊var quality = 0.6; //压缩系数0-1之间newImage.src = base64;newImage.setAttribute("crossOrigin", 'Anonymous'); //url为外域时需要var imgWidth, imgHeight;newImage.onload = function () {imgWidth = this.width;imgHeight = this.height;var canvas = document.createElement("canvas");var ctx = canvas.getContext("2d");if (Math.max(imgWidth, imgHeight) > w) {if (imgWidth > imgHeight) {canvas.width = w;canvas.height = w * imgHeight / imgWidth;} else {canvas.height = w;canvas.width = w * imgWidth / imgHeight;}} else {canvas.width = imgWidth;canvas.height = imgHeight;quality = 0.6;}ctx.clearRect(0, 0, canvas.width, canvas.height);ctx.drawImage(this, 0, 0, canvas.width, canvas.height);var base64 = canvas.toDataURL("image/jpeg", quality); //压缩语句// 如想确保图片压缩到自己想要的尺寸,如要求在100-198kb之间,请加以下语句,quality初始值根据情况自定console.log('照片第一次压缩后大小' + ((parseInt(base64.length - (base64.length / 8) * 2)) / 1024).toFixed(2) + 'K')while (((parseInt(base64.length - (base64.length / 8) * 2)) / 1024).toFixed(2) > 198) {quality -= 0.1;//系数低于这个值有可能循环次数过多,导致运行卡死base64 = canvas.toDataURL("image/jpeg", quality);}while (((parseInt(base64.length - (base64.length / 8) * 2)) / 1024).toFixed(2) < 100) {quality += 0.1;//系数低于这个值有可能循环次数过多,导致运行卡死base64 = canvas.toDataURL("image/jpeg", quality);}console.log('照片优化后大小' + ((parseInt(base64.length - (base64.length / 8) * 2)) / 1024).toFixed(2) + 'K')callback(base64); //必须通过回调函数返回,否则无法及时拿到该值}},

base64照片压缩相关推荐

  1. React native 照片压缩上传

    在用React native做项目的时候,遇到了照片的压缩上传问题.在很多RN技术交流群中,询问到的结果也是让用原生.但这里就遇到了RN和原生之间的兼容问题. 在不懈努力之下,终于找到了一个Image ...

  2. JS将base64图片压缩至指定大小

    base64图片压缩至指定大小 在开发中,通常在上传图片时,由于各种限制,需要将上传的图片压缩到某一大小范围内才能上传.在此提供以下方法实现该需求,复制可用. /*** 压缩图片到指定大小* @par ...

  3. 如何使用手机把照片压缩到100K?教你手机压缩方法

    如何使用手机来把照片压缩到100K大小呢?在我们日常的工作和学习中,有时会使用到照片来进行传输或者保存,如果照片的内存过大,会导致我们上传不了或者是非常占用内存.在身边没有电脑的情况下,我们如何使用手 ...

  4. 如何把照片压缩到20k一下_如何将照片压缩到20k_手机怎么把照片压缩到20k

    如何压缩图片到20k,PS是一款修图软件,今天小编就为大家介绍一下如何压缩图片到20k. 怎么将照片压缩到20k以下,在网上报名,上传电子版照片的要求通常是照片要这种情况可以使用word中的压缩图片 ...

  5. 免费换背景app、在线修改图片像素、在线照片压缩网站

    免费换背景 免费证件照 在线修改图片像素 https://www.gaituba.com/ 在线照片压缩网站 https://tools.kalvinbg.cn/image/compress

  6. 照片怎么压缩变小?如何把照片压缩到20K?

    现在使用纸质照片已经越来越少了,更多的时候是使用一些电子版的照片,在使用电子版照片时有一个问题大家应该都遇到过,那就是有的系统会限制图片大小,例如图片大小不能超过20K,这就非常麻烦了,因为现在一张照 ...

  7. 手机照片压缩的快捷方法

    随着智能手机得不断发展,现在手机的照相像素已经越来越高了,随便一张照片都有4M-20以上,像素越高照片内存就越大,你是否也经常遇到上传资料却提示图片超过大小,截图处理一下却变得模糊不清?今天小编就教大 ...

  8. 怎么把照片压缩变小?如何改变图片的大小?

    大家平时都喜欢保存下载高清的图片,图片的清晰度越高,图片的文件体积也就越大,占用的存储空间也就越多,想要保留图片的同时又想减小图片所占的内存的时候就需要对图片进行压缩处理了.那么如何把照片的体积压缩变 ...

  9. 如何将证件照缩小到20k像素不变?怎么把照片压缩到20k?

    随着时代的发展,很多以前需要现场办理的东西现在都可以从网上进行自助办理了,极大地节约了大家的时间,但是在办理一些证件 的时候大家经常会遇到上传的照片大小在20k以内,如果手头上的照片比这个大要怎么办呢 ...

最新文章

  1. 关于日常使用的命令解读:ifconfig
  2. Caffe学习系列(1):安装配置ubuntu14.04+cuda7.5+caffe+cudnn
  3. 15.确保“lessT“与“operator小于“具有相同的语义
  4. 前端和后端哪个工资高_前端、后端、全栈都是干嘛的?哪个薪资高?
  5. 基于java的土地档案管理系统设计(含源文件)
  6. 多级队列调度算法可视化界面_进程调度功能由操作系统内核的进程调度程序完成...
  7. SAP License:供应链管理和ERP的关系?
  8. mysql order by
  9. 程序员面试宝典 笔记 第七章
  10. 《Java多线程编程核心技术》——1.5节sleep()方法
  11. OpenDDS应用开发步骤
  12. 国际象棋渲染测试软件,多线程运算效能Fritz国际象棋测试_CPUCPU评测-中关村在线...
  13. springboot导出pdf文件(简历)
  14. php 热搜词,2020 十大网络热搜流行语来了!你知道几个?
  15. Linux应急响应排查
  16. 【论文笔记09】Differentially Private Hypothesis Transfer Learning 差分隐私迁移学习模型, ECMLPKDD 2018
  17. Element UI 组件库分析和二次开发(一)
  18. 科技云报道:2022Arm服务器现状:云阵营已成
  19. this指向问题,js的this指向有这一篇就足够了
  20. transformers的近期工作成果综述

热门文章

  1. Java生成图形验证码,并传输至前端
  2. 7-2 动物声音“模拟器”
  3. 如何做超级链接?如何做网页链接
  4. 流体动力学控制方程(详细推导)
  5. 监控摄像头参数详细介绍
  6. vscode 提示 vetur can‘t find `tsconfig.json`的解决办法
  7. 数据库----MySQL
  8. html5在线客服源码 websocket c#实现, im 即时通讯 完整的源代码,在线聊天
  9. 【总结】大学生寒假社会实践-社区志愿服务模板
  10. 疫情控制住了,公司却倒闭了!