From cdb81d5eb32b8ed6a690309ffc827840c4cfa30f Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Wed, 21 Nov 2018 20:53:04 +0800 Subject: [PATCH] Add Image Auto Adjust --- _server/editor_mode.js | 171 +++++++++++++++++++++++++++++------------ libs/control.js | 2 + 2 files changed, 123 insertions(+), 50 deletions(-) diff --git a/_server/editor_mode.js b/_server/editor_mode.js index cc0022cc..15e40174 100644 --- a/_server/editor_mode.js +++ b/_server/editor_mode.js @@ -556,6 +556,90 @@ editor_mode = function (editor) { } selectAppend.onchange(); + var getPixel=function(imgData, x, y) { + var offset = (x + y * imgData.width) * 4; + var r = imgData.data[offset+0]; + var g = imgData.data[offset+1]; + var b = imgData.data[offset+2]; + var a = imgData.data[offset+3]; + return [r,g,b,a]; + } + var setPixel=function(imgData, x, y, rgba) { + var offset = (x + y * imgData.width) * 4; + imgData.data[offset+0]=rgba[0]; + imgData.data[offset+1]=rgba[1]; + imgData.data[offset+2]=rgba[2]; + imgData.data[offset+3]=rgba[3]; + } + + var autoAdjust = function (image, callback) { + var changed = false; + + // Step 1: 检测白底 + var tempCanvas = document.createElement('canvas').getContext('2d'); + tempCanvas.canvas.width = image.width; + tempCanvas.canvas.height = image.height; + tempCanvas.mozImageSmoothingEnabled = false; + tempCanvas.webkitImageSmoothingEnabled = false; + tempCanvas.msImageSmoothingEnabled = false; + tempCanvas.imageSmoothingEnabled = false; + tempCanvas.drawImage(image, 0, 0); + var imgData = tempCanvas.getImageData(0, 0, image.width, image.height); + var trans = 0, white = 0; + for (var i=0;itrans*10 && confirm("看起来这张图片是以白色为底色,是否自动调整为透明底色?")) { + for (var i=0;i12) alert("当前状态栏数目大于12,请调整到不超过12以避免手机端出现显示问题。"); + var statusLineHeight = BASE_LINEHEIGHT * 9 / count; var statusLineFontSize = DEFAULT_FONT_SIZE; if (count>9) statusLineFontSize = statusLineFontSize * 9 / count;