<html>
<body onload="javascript:process()">
<img src="" width="0" height="0" id="qrImage"></img>
<canvas width="0" height="0" id="canvas2"></canvas>
</body>
<script>
var qrWidth=300;
var qrHeight=300;
var hiddenCanvas=document.createElement("canvas");
var canvas=hiddenCanvas.getContext("2d");
var canvas2=document.getElementById("canvas2").getContext("2d");
var qrImage=document.getElementById("qrImage");
hiddenCanvas.widht=qrWidth;
hiddenCanvas.height=qrHeight;
document.getElementById("canvas2").width=qrWidth;
document.getElementById("canvas2").height=qrHeight;
function process(){
var string="";
var qrCode="a1b3cb2d";
string="http://chart.apis.google.com/chart?cht=qr&chs="+qrWidth+"x"+qrHeight+"&chld=H|0&chl="+qrCode;
qrImage.src=string;
qrImage.crossOrigin="anonymous";
setTimeout(function(){drawQrImage();},1000);
}
function drawQrImage(){
canvas.drawImage(qrImage,0,0);
var qrFrame="";
var numberOfPixels="";
qrFrame = canvas.getImageData(0, 0, qrWidth, qrHeight);
numberOfPixels = qrFrame.data.length / 4;
var pixelCount=0;
for (var i = 0; i < numberOfPixels; i++) {
if(qrFrame.data[i*4]>128){break;}
pixelCount++;
}
pixelCount=pixelCount/7;
canvas.fillText(pixelCount,120,50);
var radius=pixelCount/2;
var count=0;
var x=0;
var y=0;
for (var i = 0; i < numberOfPixels; i++) {
if(qrFrame.data[i*(4*pixelCount)]<128){
if(!((x<7&&y<7)||(x>17&&y<7)||(x<7&&y>17))&&x<25){
//if(x<25){
canvas2.beginPath();
canvas2.arc(x*pixelCount+pixelCount/2,y*pixelCount+pixelCount/2,pixelCount/2,0,2*Math.PI,false);
canvas2.fill();
}
}
count++;
x=(count%qrWidth);
y=parseInt(count/qrWidth);
}
canvas2.beginPath();
canvas2.lineWidth=pixelCount;
canvas2.arc(3*pixelCount+pixelCount/2,3*pixelCount+pixelCount/2,3*pixelCount,0,2*Math.PI,false);
canvas2.stroke();
canvas2.beginPath();
canvas2.lineWidth=pixelCount;
canvas2.arc(3*pixelCount+pixelCount/2,3*pixelCount+pixelCount/2,1*pixelCount+pixelCount/2,0,2*Math.PI,false);
canvas2.fill();
canvas2.beginPath();
canvas2.lineWidth=pixelCount;
canvas2.arc(3*pixelCount+pixelCount/2+18*pixelCount,3*pixelCount+pixelCount/2,3*pixelCount,0,2*Math.PI,false);
canvas2.stroke();
canvas2.beginPath();
canvas2.lineWidth=pixelCount;
canvas2.arc(3*pixelCount+pixelCount/2+18*pixelCount,3*pixelCount+pixelCount/2,1*pixelCount+pixelCount/2,0,2*Math.PI,false);
canvas2.fill();
canvas2.beginPath();
canvas2.lineWidth=pixelCount;
canvas2.arc(3*pixelCount+pixelCount/2,3*pixelCount+pixelCount/2+18*pixelCount,3*pixelCount,0,2*Math.PI,false);
canvas2.stroke();
canvas2.beginPath();
canvas2.lineWidth=pixelCount;
canvas2.arc(3*pixelCount+pixelCount/2,3*pixelCount+pixelCount/2+18*pixelCount,1*pixelCount+pixelCount/2,0,2*Math.PI,false);
canvas2.fill();
canvas.fillText(numberOfPixels,120,20);
}
</script>
</html>