js 压缩base64
//压缩方法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相关推荐
- js压缩base64图片的方法
话不多说,直接上代码. function compressImage(base64, callback) {var targSize = 1024 * 1024 //1024KB if (base64 ...
- 手机网页版JS压缩上传图片--base64位 兼容IOS和安卓
首先,我用到了一款插件,是纯JS压缩上传插件,第一次用CSDN,不太会用,我把插件所有代码拷贝在文章末尾. 加载JS插件<script src="__JS__/dist/lrz.mob ...
- JS压缩图片并转换base64
JS压缩图片并转换base64 // 调用 photoCompress(pic, 1080, 0, 0.3, function(base64Codes, path) {Base64Url = base ...
- 十分钟教会你原生JS压缩图片,极其精简版
十分钟教会你原生JS压缩图片,极其精简版 原文链接:https://blog.csdn.net/yasha97/article/details/83629510 (一)实现思路 先通过input标签获 ...
- js压缩图片--可以控制分辨率以及压缩后的图片质量
1.html:代码 <%@ page language="java" contentType="text/html; charset=utf-8"page ...
- js压缩图片(ajax上传)
js压缩图片(ajax.form提交)(pc.mobile测试ok)(Java) 1. 目的: 上传先进行图片压缩,然后再把压缩后的图片上传到服务器. 2. 思路: 上传前用js对图片压缩,把利用ca ...
- js 压缩图片及ajax上传图片
js 压缩图片及ajax上传图片 js压缩图片 ajax 上传文件 最近做的一个微信活动中需要用到图片上传功能,具体就是用户通过手机拍照上传图片来参与活动.在测试的过程中我们发现上传的图片非常大.我们 ...
- js和css和img,Node.js压缩web项目中的js,css和图片
安装node.js 这个非常简单,下载下来,配置下环境变量就可以了,使用node -v查看是否安装成功 安装压缩需要的模块分别是uglify-js,clean-css,node-smushit 命令是 ...
- html5 文件转byte[],JS 文件base64、File、Blob、ArrayBuffer互转
二进制互转 1. file对象转base64let reader = new FileReader(); reader.readAsDataURL(file[0]) console.log(reade ...
最新文章
- 强烈推荐一款Python可视化神器!
- padans的DataFrame
- python在中小学教学中的应用-在python程序中的进程操作
- 二维码QR Code不是一个产品,是一个功能
- 【计算理论】自动机设计 ( 设计自动机 | 确定性自动机设计示例 | 确定性与非确定性 | 自动机中的不确定性 )
- 快速开发平台业务表字段设置的用法
- 集合 setfrozenset
- 【渝粤题库】陕西师范大学210011幼儿园语言教育作业(高起专)
- docker的swarm介绍
- 怎样实现一个非阻塞的超时重试任务队列
- matlab调用kmeans_Matlab中Kmeans函数的使用
- 互联网+医疗考验无线部署 飞塔SAA同频部署模式巧妙化解
- AbstractQueuedSynchronizer源码分析
- openwrt下使用wget出现Failed to allocate uclient context
- 用C#打造quot;QQ对战平台挤房器quot;
- 老罗锤子手机公布会,我感到深深地愧疚
- 亲测豆果美食7.0版:美食食谱App的沉浸新味道
- 解决Mysql 主从或主主报1032错误
- 第一章第六天Java基础语法 嵌套循环
- Res2Net 算法的介绍