<script>
var vid = new Image();
var canvas, context;
var vw, vh;
var R, G, B, A;
var imageData, data, pixwidth;
var x, y;
var ascii;
function init() {
vid = document.getElementById('vid');
canvas = document.getElementById('myCanvas');
context = canvas.getContext('2d');
vw = 590;
vh = 590;
ascii = "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,´^`'. "; // 69 chars
alert(ascii.length);
return setInterval(drawVid, 20);
}
function drawVid() {
context.drawImage(vid,0,0,vw,vh);
imageData = context.getImageData(0, 0, vw, vh); // FIREFOX... ARGH!!!
data = imageData.data;
pixwidth = 10;
context.clearRect(0,0,canvas.width, canvas.height);
for (y = 0; y < vh; y+=pixwidth) { // ROWS
for (x = 0; x < vw; x+=pixwidth) { // COLUMNS
R = data[((vw * y) + x) * 4];
G = data[((vw * y) + x) * 4 + 1];
B = data[((vw * y) + x) * 4 + 2];
A = data[((vw * y) + x) * 4 + 3];
var GS = Math.round(0.299*R + 0.587*G + 0.114*B); // http://www.edaboard.com/thread27746.html
document.getElementById('display').innerHTML = "GRAYSCALE = 0.299*R + 0.587*G + 0.114*B ";
var MC = Math.round(GS/255 * (ascii.length-1));
context.font = 'normal ' + pixwidth + 'px Courier';
context.fillText(ascii[MC], x+pixwidth, y+pixwidth);
}
}
}
</script>
<meta charset="UTF-8">
</head>
<body onload="init()" >
<canvas id="myCanvas" width="600" height="600" ></canvas>
<div id="display"></div>
<video id="vid" loop autoplay width="480" height="320" style="display: none;" >
<source src="vid/movie.webm" type="video/webm">
<source src="vid/movie.ogv" type="video/ogg">
<source src="vid/movie.mp4" type="video/mp4">
</video>