let canvas, context, html = document.getElementsByTagName('html')[0], rnd = (min, max) => Math.floor(Math.random()*max+min), hiddenText = 'Dyrk est un super blog.'.split('').map(e=>e.charCodeAt(0).toString(2)).join('').split('') html.textContent = ''; 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); for (var i = 0; i<= 500; i++) { context.beginPath(); context.strokeStyle = '#'.concat( [0,0,0].map(()=>rnd(1, 256).toString(16) ).join('')); context.arc(rnd(1, canvas.height), rnd(1, canvas.width), 20, 0, 2*Math.PI); 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); /* Ajout du texte caché */ blockToHideData = context.getImageData(0, 0, canvas.height, 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); binString[7] = hiddenText.length-1 > 0 ? hiddenText.shift() : '0'; binString.map(e=>typeof e !='undefined' && e === 0 || e==1 ? e : 0); blockToHideData.data[i] = parseInt(binString.join(''), 2); }; context.putImageData(blockToHideData, 0, 0);