87,910
社区成员
发帖
与我相关
我的任务
分享
var arrboxG=[];
for (n = 0; n<imgSrc.length; n++){
var image = new Image();
imgs[n]=image;
image.src = imgSrc[n];
image.onload = function () { //为异步函数,所以将创建canvas放在onload中.
var oDiv=document.createElement('div'),
oCan = document.createElement('canvas'),
oP=document.createElement("p");
oDiv.appendChild(oCan);
oDiv.appendChild(oP);
$("#div").append(oDiv);
var context=oCan.getContext("2d");
//添加图片
var imgHeight = this.height;
var imgWidth = this.width;
imgWidth=oCan.width;
imgHeight=oCan.height;
context.drawImage(this,0,0,imgWidth,imgHeight);
var imageData =context.getImageData(0, 0,imgWidth,imgHeight);
var length = imageData.data.length;
//要对canvas进行的操作
for (var i = 0; i < length; i++) {
if (i % 4 === 0) {
if (imageData.data[i + 3] == 255) {
var hsl = rgbToHsl(imageData.data[i], imageData.data[i + 1], imageData.data[i + 2]);
if (hsl[0] >= 57 && hsl[0] <= 152 && hsl[1] >= 13 && hsl[1] <= 100 && hsl[2] >= 0 && hsl [2] <= 90) {
arrboxG.push(hsl);
}
}
}
}
}
})
var arrboxG=[];
(function loop(n) {
if (n>=imgSrc.length) return;
var image = new Image();
image.src = imgSrc[n];
image.onload = function () { //为异步函数,所以将创建canvas放在onload中.
var oDiv=document.createElement('div'),
oCan = document.createElement('canvas'),
oP=document.createElement("p");
oDiv.appendChild(oCan);
oDiv.appendChild(oP);
$("#div").append(oDiv);
var context=oCan.getContext("2d");
//添加图片
var imgHeight = this.height;
var imgWidth = this.width;
imgWidth=oCan.width;
imgHeight=oCan.height;
context.drawImage(this,0,0,imgWidth,imgHeight);
var imageData =context.getImageData(0, 0,imgWidth,imgHeight);
var length = imageData.data.length;
//要对canvas进行的操作
for (var i = 0; i < length; i++) {
if (i % 4 === 0) {
if (imageData.data[i + 3] == 255) {
var hsl = rgbToHsl(imageData.data[i], imageData.data[i + 1], imageData.data[i + 2]);
if (hsl[0] >= 57 && hsl[0] <= 152 && hsl[1] >= 13 && hsl[1] <= 100 && hsl[2] >= 0 && hsl [2] <= 90) {
arrboxG.push(hsl);
}
}
}
}
loop(n+1);
console.log('SSSSSS: ', arrboxG) //在这里打印出来的是没问题的,你在什么地方获取的数据呢
}
})(0);
var lenG = arrboxG.length,
lenB=arrboxB.length;
这个用在了里面的for循环外面呀
function rgbToHsl(r, g, b) {
r /= 255, g /= 255, b /= 255;
var max = Math.max(r, g, b), min = Math.min(r, g, b);
var h, s, l = (max + min) / 2;
if (max == min) {
h = s = 0; // achromatic
} else {
var d = max - min;
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
h = (r == max ? (g - b) / d : g == max ? 2 + (b - r) / d : 4 + (r - g) / d) * 0.6;
}
return [Math.floor(h * 100), Math.round(s * 100), Math.round(l * 100)];
}
var arrboxG=[];
(function loop(n) {
if (n>=imgSrc.length) return;
var image = new Image();
image.src = imgSrc[n];
image.onload = function () { //为异步函数,所以将创建canvas放在onload中.
var oDiv=document.createElement('div'),
oCan = document.createElement('canvas'),
oP=document.createElement("p");
oDiv.appendChild(oCan);
oDiv.appendChild(oP);
$("#div").append(oDiv);
var context=oCan.getContext("2d");
//添加图片
var imgHeight = this.height;
var imgWidth = this.width;
imgWidth=oCan.width;
imgHeight=oCan.height;
context.drawImage(this,0,0,imgWidth,imgHeight);
var imageData =context.getImageData(0, 0,imgWidth,imgHeight);
var length = imageData.data.length;
//要对canvas进行的操作
for (var i = 0; i < length; i++) {
if (i % 4 === 0) {
if (imageData.data[i + 3] == 255) {
var hsl = rgbToHsl(imageData.data[i], imageData.data[i + 1], imageData.data[i + 2]);
if (hsl[0] >= 57 && hsl[0] <= 152 && hsl[1] >= 13 && hsl[1] <= 100 && hsl[2] >= 0 && hsl [2] <= 90) {
arrboxG.push(hsl);
}
}
}
}
loop(n+1);
}
})(0);