html下纯JS实现图片压缩、预览、图片Base64转换

本文介绍了一种将图片文件转换为Base64编码的方法,并提供了详细的JavaScript代码示例。该方法可以用于实现图片的预览及上传功能。
 1 function ImgToBase64(file, maxLen, callBack) {
 2     var img = new Image();
 3 
 4     var reader = new FileReader();//读取客户端上的文件
 5     reader.onload = function () {
 6         var url = reader.result;//读取到的文件内容.这个属性只在读取操作完成之后才有效,并且数据的格式取决于读取操作是由哪个方法发起的.所以必须使用reader.onload,
 7         img.src = url;//reader读取的文件内容是base64,利用这个url就能实现上传前预览图片
 8     };
 9     img.onload = function () {
10         //生成比例
11         var width = img.width, height = img.height;
12         //计算缩放比例
13         var rate = 1;
14         if (width >= height) {
15             if (width > maxLen) {
16                 rate = maxLen / width;
17             }
18         } else {
19             if (height > maxLen) {
20                 rate = maxLen / height;
21             }
22         };
23         img.width = width * rate;
24         img.height = height * rate;
25         //生成canvas
26         var canvas = document.createElement("canvas");
27         var ctx = canvas.getContext("2d");
28         canvas.width = img.width;
29         canvas.height = img.height;
30         ctx.drawImage(img, 0, 0, img.width, img.height);
31         var base64 = canvas.toDataURL('image/jpeg', 0.9);
32         callBack(base64);
33     };
34     reader.readAsDataURL(file);
35 }

调用方式:

 1 $(function () {
 2         $("#img").change(function () {
 3             var file = $(this)[0].files[0];//获取input file控件选择的文件
 4             
 5             ImgToBase64(file, 720, function (base64) {
 6                 $("#img1")[0].src = base64;//预览页面上预留一个img元素,载入base64
 7                 $("#img1")[0].width = 300;//设定宽高,不然会自动按照压缩过的图片宽高设定,有可能超出预想的范围。
           //直接利用ajax上传base64到服务器,完毕
8 }); 9 }) 10 })

 

转载于:https://www.cnblogs.com/tiomer/p/7040742.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值