base64 压缩图片
//图片处理
afterimg(err, photos) {
var _this = this;
if(err && err != null && err != '') {
return ;
}
var src = 'data:image/jpeg;base64,' + photos;
var inputData = {
fileName: ["upload", '_', new Date().getTime(), '_', Math.floor(Math.random() * 1000000), '.png'].join(''), // 文件全名,包括格式
fileContent: src
};
var width = parseInt(document.documentElement.clientWidth) * 0.8;
_this.dealImage(src, {
width: width
}, inputData, _this.uploadimage);
},
//压缩图片
dealImage(path, obj, data, cb) {
var img = new Image();
img.src = path;
img.onload = function() {
var that = this;
// 默认按比例压缩
var w = that.width,
h = that.height,
scale = w / h;
w = obj.width || w;
h = obj.height || (w / scale);
var quality = 0.75; // 默认图片质量为0.7
//生成canvas
var 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);
// 图像质量
if(obj.quality && obj.quality <= 1 && obj.quality > 0) {
quality = obj.quality;
}
var base64 = canvas.toDataURL('image/jpeg', quality).replace('data:image/jpeg;base64,', '');
// 回调函数返回base64的值
data.fileContent = base64;
typeof cb == 'function' && cb(data);
}
},
//上传图片
uploadimage(inputData) {}
base64 压缩图片的更多相关文章
- js压缩图片base64长度
		
var myCanvas=$('.img-container > img').cropper('getCroppedCanvas'); (function (base64){ var image ...
 - 上传图片转为base64格式预览并压缩图片(不兼容IE9以下浏览器,兼容移动端ios,android)
		
前些天公司要求在微信移动端做上传图片并预览的功能,要求能够调用摄像头拍照并立即预览. 在网上搜了一些方法,开始自己写了个简单的功能实现代码.结果发现移动端拍照出来的图片动不动就2M+,又因为要批量上传 ...
 - JS实现图片base64转blob对象,压缩图片,预览图片,图片旋转到正确角度
		
base64转blob对象 /** 将base64转换为文件对象 * @param {String} base64 base64字符串 * */ var convertBase64ToBlob = f ...
 - file上传图片,base64转换、压缩图片、预览图片、将图片旋转到正确的角度
		
/** * 将base64转换为文件对象 * (即用文件上传输入框上传文件得到的对象) * @param {String} base64 base64字符串 */ function convertBa ...
 - JS压缩图片(canvas),返回base64码
		
上传图片时总会遇到图片过大上传不上去的问题,本方法是在网上搜的压缩图片的例子,我测试过了,确实能用,但是照搬别人的代码,发现压缩后图片会失真,不清晰,现经修改图片清晰度还可以,不仔细看差别不大,so, ...
 - vue2.X + HTML5 plus  拍照和调用设备相册  另附 图片转base64和压缩图片方法
		
HTML5 部分 <button @click="tesCamera()" type="button" :disabled="isshStatu ...
 - Android压缩图片到100K以下并保持不失真的高效方法
		
前言:目前一般手机的相机都能达到800万像素,像我的Galaxy Nexus才500万像素,拍摄的照片也有1.5M左右.这么大的照片上传到服务器,不仅浪费流量,同时还浪费时间. 在开发Android企 ...
 - js上传压缩图片
		
原文链接:http://blog.csdn.net/iefreer/article/details/53039848 手机用户拍的照片通常会有2M以上,这对服务器带宽产生较大压力. 因此在某些应用下( ...
 - 移动端使用localResizeIMG4压缩图片
		
移动h5开发避免不了上传图片,一般我们使用html自带的控件input或者使用微信上传API.但微信上传API不是任何地方都可以使用的,使用html自带的控件input上传又免不了图片体积太大,上传不 ...
 
随机推荐
- css grid 网格布局
			
前几天研究了一下这个布局方式,笔记待更新 先放一下学习站点 文档 我应该尝试使用CSS Grid Layout的IE实现吗 https://hacks.mozilla.org/2018/02/css- ...
 - WPF 我的初学必备技能
			
0.控件 0.1.内容控件(Content Controls) 0.2.条目控件(Items Controls) 0.3.文本控件(Text Controls) 0.4.范围控件(Range Cont ...
 - 《机器学习实战》ID3算法实现
			
注释:之前从未接触过决策树,直接上手对着书看源码,有点难,确实有点难-- 本代码是基于ID3编写,之后的ID4.5和CART等还没学习到 一.决策树的原理 没有看网上原理,直接看源码懂得原理,下面是我 ...
 - LeetCode 12. Integer to RomanLeetCode
			
整数转罗马数字 first submission import math class Solution: def __init__(self): self.roman={1:'I',5:'V',10: ...
 - python-单元测试unittest
			
目录: 1.unittest.TestCase中常用的断言方法 1.1 subTest子测试 1.2 套件测试 1.3 批量测试单个用例 2. 加载器 2.1加载器协议 2.2.执行器 TestRun ...
 - add_featurelayer_to_map
			
var jsonFS = { "geometryType": "esriGeometryPolygon", "features": [ { ...
 - winform菜单栏、工具栏
			
MenuStrip:菜单 -第一格为选项名,子单可隐藏 --在其中键入”-”可出现分割线或在其上-右键-插入- Sparator -右键-插入标准项,可输入基本菜单项 -右键选项卡--设置图像 --设 ...
 - 对象 Object
			
在js 中创建最简单的对象,然后给它添加属性或者方法 示例如下: var obj = new Object(); //或者 var obj = {}; obj.name = '张三'; obj.fun ...
 - 09_组件三大属性(3)_refs和事件处理
			
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
 - CSS GRID ESSENTIALS
			
CSS GRID ESSENTIALS Review At this point, we've covered a great deal of different ways to manipulate ...