1234567891011121314151617181920212223242526272829303132333435363738 |
- // 压缩上传图片
- export function translate(imgSrc, scale, fileName, callback) {
- let img = new Image();
- img.src = imgSrc;
- img.onload = function() {
- let that = this;
- let h = that.height * 0.8; // 默认按比例压缩
- let w = that.width * 0.8;
- let canvas = document.createElement('canvas');
- let ctx = canvas.getContext('2d');
- let width = document.createAttribute("width");
- width.nodeValue = w;
- let height = document.createAttribute("height");
- height.nodeValue = h;
- canvas.setAttributeNode(width);
- canvas.setAttributeNode(height);
- ctx.drawImage(that, 0, 0, w, h);
- // 设置边框样式
- ctx.strokeStyle = '#fff';
- ctx.lineWidth = 5;
- ctx.strokeRect(0, 0, w, h);
- let dataurl = canvas.toDataURL('image/jpeg', scale); //压缩比例
- let arr = dataurl.split(','),
- mime = arr[0].match(/:(.*?);/)[1],
- bstr = atob(arr[1]),
- n = bstr.length,
- u8arr = new Uint8Array(n);
- while (n--) {
- u8arr[n] = bstr.charCodeAt(n);
- }
- let file = new File([u8arr], fileName, {
- type: mime
- });
- // file.lastModifiedDate = new Date();
- canvas = null;
- callback && callback(dataurl, file);
- }
- }
|