diff --git a/lib/java110/utils/translate-image.js b/lib/java110/utils/translate-image.js index 271af2d..6ded9fc 100644 --- a/lib/java110/utils/translate-image.js +++ b/lib/java110/utils/translate-image.js @@ -23,18 +23,18 @@ export function translate(that, imgSrc, callback) { export function translateH5(imgSrc, callback) { - var img = new Image(); + let img = new Image(); img.src = imgSrc; img.onload = function () { - var that = this; + let that = this; - var h = that.height; + let h = that.height; // 默认按比例压缩 - var w = that.width; + let w = that.width; if(h > 1080 || w > 1080){ let _rate = 0; @@ -49,32 +49,19 @@ export function translateH5(imgSrc, callback) { } } - var canvas = document.createElement('canvas'); - - var ctx = canvas.getContext('2d'); - - var anw = document.createAttribute("width"); - + let canvas = document.createElement('canvas'); + let ctx = canvas.getContext('2d'); + let anw = document.createAttribute("width"); anw.nodeValue = w; - - var anh = document.createAttribute("height"); - + let anh = document.createAttribute("height"); anh.nodeValue = h; - canvas.setAttributeNode(anw); - canvas.setAttributeNode(anh); - ctx.drawImage(that, 0, 0, w, h); - //压缩比例 - - var quality = 0.3; - - var base64 = canvas.toDataURL('image/jpeg', quality); - + let quality = 0.3; + let base64 = canvas.toDataURL('image/jpeg', quality); canvas = null; - callback(base64); } @@ -101,14 +88,29 @@ function imageToBease64(that, imageUrl, callback) { const canvas = res[0].node; const ctx = canvas.getContext('2d'); const image = canvas.createImage(); - canvas.width = imgData.width; - canvas.height = imgData.height; + image.src = imgData.path; image.onload = function() { - const canvasWidth = imgData.width; // 获取图片宽度 - const canvasHeight = imgData.height; // 获取图片高度 - ctx.drawImage(image, 0, 0, canvasWidth, canvasHeight); // 绘制图片 + + let h = imgData.height; + // 默认按比例压缩 + let w = imgData.width; + if(h > 1080 || w > 1080){ + let _rate = 0; + if(h > w){ + _rate = h/1080; + h = 1080; + w = Math.floor(w/_rate); + }else{ + _rate = w/1080; + w = 1080; + h = Math.floor(h/_rate); + } + } + canvas.width = w; + canvas.height = h; + ctx.drawImage(image, 0, 0, w, h); // 绘制图片 //压缩比例 let quality = 0.3;