[whatwg] [canvas] matrix based changes on bitmaps

Ian Hickson ian at hixie.ch
Thu Sep 20 15:45:29 PDT 2012

On Mon, 23 Apr 2012, Tyler Larson wrote:
> Looping over every pixel in JavaScript is slow. Many cool things could 
> be taken care of much faster if the canvas had some form of matrix 
> manipulations built in.
> All of the pixels could have one transformation operation defined and 
> all of the pixels could be operated on at once in something lower level.
> It could look like this...
> context.transformMatrix([0.5,0.5,0.5,0,0,
> 					0.5,0.5,0.5,0,0,
> 					0.5,0.5,0.5,0,0,
> 					0,0,0,1,0,
> 					0,0,0,0,1]);
> It's far simpler than looping over an array of pixels and picking out 
> the values of each color.
> Other graphics systems have ways of doing this already. You can easily 
> find sample tutorials on how to create and transform matrixes.
> In some languages they have matrix objects that have methods for even 
> easier manipulation of these transformations but I'm cool without this 
> if it is easier.

It seems like a reasonable suggestion, but since the pixel data is 
available as an ArrayBuffer, it seems like the more reasonable thing to do 
is to provide generic ArrayBuffer manipulation routines.

I recommend raising this as feedback on the ArrayBuffer spec.

Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

More information about the whatwg mailing list