Google Chrome Developer Relations
ilmari@google.com
And writes articles about them
And gives the occasional talk
And helps third-party devs
Quite a few things actually.
All the new browser features
And a WHATWG Specification
Think STABLE and HEAD
For some values of fun
var ctx = canvas.getContext('2d');
ctx.drawImage(image, 0, 0);
var src = ctx.getImageData(
0, 0, image.width, image.height
);
var tgt = ctx.createImageData(width, height);
for (var y=0; y<tgt.height; y++) {
for (var x=0; x<tgt.width; x++) {
var off = (y*tgt.width + x) * 4;
var px = filter(src, x, y);
tgt.pixels[off ] = px.r;
tgt.pixels[off+1] = px.g;
tgt.pixels[off+2] = px.b;
tgt.pixels[off+3] = px.a;
}
}
ctx.putImageData(tgt, 0, 0);
But a lot more boilerplate code.
Then you only have to write the filters.
var scene = new Magi.Scene(canvas);
var img = new Magi.ImageQuad(image);
scene.scene.appendChild(img);
var filter = new Magi.FilterQuad(shaderSource);
scene.postEffects.push(filter);
(just... use a library)
ilmari@google.com
P.S. you can get this slideshow app from
github.com/kig/magi