| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- /**
- * 压缩
- * @param {Object} imgSrc 图片url
- * @param {Object} callback 回调设置返回值
- */
- export function translate(imgSrc) {
- var img = new Image();
- img.src = imgSrc;
- img.onload = function() {
- var that = this;
- var h = that.height;
- // 默认按比例压缩
- var w = that.width;
- 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);
- //压缩比例
- var quality = 0.7;
- var base64 = canvas.toDataURL('image/jpeg', quality);
- canvas = null;
- var blob=base64ToBlob(base64);
- // console.log(blob)
- //Blob对象转blob地址
- var blobUrl=window.URL.createObjectURL(blob);
- return blobUrl;
- }
- }
- /**
- * base转Blob对象
- * @param {Object} base64 base64地址
- */
- export function base64ToBlob(base64) {
- var arr = base64.split(','),
- mime = arr[0].match(/:(.*?);/)[1],
- bstr = atob(arr[1]),
- n = bstr.length,
- u8arr = new Uint8Array(n);
- while (n--) {
- u8arr[n] = bstr.charCodeAt(n);
- }
- return new Blob([u8arr], {
- type: mime
- });
- }
|