let arrCanv = [0,0],
canvas, context, html = document.getElementsByTagName('html')[0],
rnd = (min, max) => Math.floor(Math.random()*max+min);
html.textContent = '';
arrCanv = arrCanv.map((canvas, pos)=>{
canvas = document.createElement('canvas');
canvas.width = canvas.height = 300;
context = canvas.getContext('2d');
html.appendChild(canvas);
context.fillStyle = '#FFF';
context.fillRect(0,0, canvas.width, canvas.height);
context.beginPath();
for (var i = 0; i<= 20; i++) {
context.beginPath();
context.strokeStyle = '#'.concat( [0,0,0].map(()=>rnd(1, 256).toString(16) ).join(''));
if (pos % 2 == 0) {
context.arc(rnd(1, canvas.height), rnd(1, canvas.width), 20, 0, 2*Math.PI);
} else {
context.rect(rnd(1, canvas.height), rnd(1, canvas.width), 30, 30)
}
context.stroke();
context.closePath();
};
context.fillStyle = '#000'
context.font = (canvas.height/5).toString().concat("px serif");
context.fillText("Dyrk.org", canvas.width/5, canvas.height/5);
return {canvas:canvas, context:context};
});
blockToHideData = arrCanv[0].context.getImageData(0, 0, arrCanv[0].canvas.height, arrCanv[0].canvas.width);
blockWithData = arrCanv[1].context.getImageData(0, 0, arrCanv[0].canvas.height, arrCanv[0].canvas.width);
for (var i = 0; i <= blockToHideData.data.length-1; i+=4) {
binString = ['0','0','0','0','0','0','0','0'];
blockToHideData.data[i].toString(2).split('').map((e,i)=>binString[i] =e);
test = [blockWithData.data[i],blockWithData.data[i+1],blockWithData.data[i+2]].filter(e=>e<255).length-1 > 0;
binString[7] = test ? '1' : '0';
binString.map(e=>typeof e !='undefined' && e === 0 || e==1 ? e : 0);
blockToHideData.data[i] = parseInt(binString.join(''), 2);
};
arrCanv[0].context.putImageData(blockToHideData, 0, 0);