//压缩方法function dealImage(name, base64, w, callback) {var newImage = new Image();var quality = 0.5;    //压缩系数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.5;}ctx.clearRect(0, 0, canvas.width, canvas.height);ctx.drawImage(this, 0, 0, canvas.width, canvas.height);// 将canvas的透明背景设置成白色var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);for(var i = 0; i < imageData.data.length; i += 4) {// 当该像素是透明的,则设置成白色if(imageData.data[i + 3] == 0) {imageData.data[i] = 255;imageData.data[i + 1] = 255;imageData.data[i + 2] = 255;imageData.data[i + 3] = 255; }}ctx.putImageData(imageData, 0, 0);var base64 = canvas.toDataURL("image/jpg", quality); //压缩语句  jpg 相对jpeg清晰let obj = {name: name,value: base64}callback(obj);//必须通过回调函数返回,否则无法及时拿到该值}}//多个base64  进行循环,单个则不需要let list = {fileNum: ‘’,fileSize: ‘’,fileLine: ''}for (let i in list) {dealImage(i, list[i], 500, useImg)}let p = {fileNum: '',fileSize: '',fileLine: ''}function useImg(o) {for (let i in p) {if (i === o.name) {p[i] = o.value}}}setTimeout(() => {console.log(p)})

js 压缩base64相关推荐

  1. js压缩base64图片的方法

    话不多说,直接上代码. function compressImage(base64, callback) {var targSize = 1024 * 1024 //1024KB if (base64 ...

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

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

  3. JS压缩图片并转换base64

    JS压缩图片并转换base64 // 调用 photoCompress(pic, 1080, 0, 0.3, function(base64Codes, path) {Base64Url = base ...

  4. 十分钟教会你原生JS压缩图片,极其精简版

    十分钟教会你原生JS压缩图片,极其精简版 原文链接:https://blog.csdn.net/yasha97/article/details/83629510 (一)实现思路 先通过input标签获 ...

  5. js压缩图片--可以控制分辨率以及压缩后的图片质量

    1.html:代码 <%@ page language="java" contentType="text/html; charset=utf-8"page ...

  6. js压缩图片(ajax上传)

    js压缩图片(ajax.form提交)(pc.mobile测试ok)(Java) 1. 目的: 上传先进行图片压缩,然后再把压缩后的图片上传到服务器. 2. 思路: 上传前用js对图片压缩,把利用ca ...

  7. js 压缩图片及ajax上传图片

    js 压缩图片及ajax上传图片 js压缩图片 ajax 上传文件 最近做的一个微信活动中需要用到图片上传功能,具体就是用户通过手机拍照上传图片来参与活动.在测试的过程中我们发现上传的图片非常大.我们 ...

  8. js和css和img,Node.js压缩web项目中的js,css和图片

    安装node.js 这个非常简单,下载下来,配置下环境变量就可以了,使用node -v查看是否安装成功 安装压缩需要的模块分别是uglify-js,clean-css,node-smushit 命令是 ...

  9. html5 文件转byte[],JS 文件base64、File、Blob、ArrayBuffer互转

    二进制互转 1. file对象转base64let reader = new FileReader(); reader.readAsDataURL(file[0]) console.log(reade ...

最新文章

  1. 强烈推荐一款Python可视化神器!
  2. padans的DataFrame
  3. python在中小学教学中的应用-在python程序中的进程操作
  4. 二维码QR Code不是一个产品,是一个功能
  5. 【计算理论】自动机设计 ( 设计自动机 | 确定性自动机设计示例 | 确定性与非确定性 | 自动机中的不确定性 )
  6. 快速开发平台业务表字段设置的用法
  7. 集合 setfrozenset
  8. 【渝粤题库】陕西师范大学210011幼儿园语言教育作业(高起专)
  9. docker的swarm介绍
  10. 怎样实现一个非阻塞的超时重试任务队列
  11. matlab调用kmeans_Matlab中Kmeans函数的使用
  12. 互联网+医疗考验无线部署 飞塔SAA同频部署模式巧妙化解
  13. AbstractQueuedSynchronizer源码分析
  14. openwrt下使用wget出现Failed to allocate uclient context
  15. 用C#打造quot;QQ对战平台挤房器quot;
  16. 老罗锤子手机公布会,我感到深深地愧疚
  17. 亲测豆果美食7.0版:美食食谱App的沉浸新味道
  18. 解决Mysql 主从或主主报1032错误
  19. 第一章第六天Java基础语法 嵌套循环
  20. Res2Net 算法的介绍

热门文章

  1. chatgpt Sorry, you have been blocked
  2. 前端经典面试题 30道
  3. SSTI原理以及ctf.show的SSTI(web361-web362)
  4. 腾讯云Linux轻量应用服务器一键部署WordPress个人博客教程
  5. iOS证书即将过期的更新步骤
  6. html2canvas使用教程
  7. 代码发芽网(Beta版)发布,欢迎测试、试用
  8. 苹果cmsv10仿哈哩自适应网站模板哈哩哈哩视频手机模板
  9. 防止XSS跨站脚本攻击:Java过滤器
  10. 机器学习学习笔记(二)---PR曲线