您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

javascript实现图片压缩的代码

2025/11/24 11:28:12发布18次查看
本篇文章给大家带来的内容是关于javascript实现图片压缩的代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
废话不多说,直接上代码 返回的是一个base64的一个字符串
/** * 图片压缩,默认同比例压缩 * @param {object} path * pc端传入的路径可以为相对路径,但是在移动端上必须传入的路径是照相图片储存的绝对路径 * @param {object} obj * obj 对象 有 width, height, quality(0-1) * @param {object} callback * 回调函数有一个参数,base64的字符串数据 */function dealimage(path, obj, callback){ 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.7; // 默认图片质量为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; } // quality值越小,所绘制出的图像越模糊 var base64 = canvas.todataurl('image/jpeg', quality ); // 回调函数返回base64的值 callback(base64); }}
调用方法
// 调用函数处理图片 dealimage("路径", {// 注意:在pc端可以用绝对路径或相对路径,移动端最好用绝对路径(因为用take photo后的图片路径,我没有试成功(如果有人试成功了可以分享一下经验)) width : 200}, function(base){//直接将获取到的base64的字符串,放到一个image标签中就可看到测试后的压缩之后的样式图了 document.getelementbyid("transform").src = base; console.log("压缩后:" + base.length / 1024 + " " + base);})
ps:主要思想就是获取到图片,利用h5 canvas技术进行图片数据化为 base64 的字符串,最后传到后台进行,后台将base64的字符串数据进行图像化储存。
相关推荐:
javascript实现省市联动的代码分享
javascript实现二叉树的代码介绍
以上就是javascript实现图片压缩的代码的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product