[whatwg] on ImageData, putImageData() and drawImage()

Mathieu HENRI p01 at opera.com
Tue Jul 1 05:21:44 PDT 2008


As of today the variants of the putImageData() method copy a region of 
an ImageData (in device pixels) straight to a Canvas (in intrinsic 
pixels) and do not allow to scale the region further than the obvious 
device to intrinsic "scaling".

This means that if a developer needs to copy and scale a region of an 
ImageData, he needs to do so in 2 passes, and use a temporary Canvas.

Also, although the the putImageData() and drawImage() methods do more or 
less the same thing, their arguments differ greatly.

This is why, in order to allow scaling of ImageData and to simplify the 
blit operations, I propose to:

* remove the putImageData() method and all its variants in favor of 
allowing the image argument of the drawImage() methods to be an instance 
of either an HTMLImageElement, an HTMLCanvasElement or an ImageData.

* rename the remaining getImageData(sx, sy, sw, sh) method to become a 
new variant of the createImageData() method:

	createImageData(sx, sy, sw, sh)

These modifications would make the blit and blit-related operations of 
the Canvas API more simple and uniform.

Kind regards,

Mathieu 'p01' HENRI
JavaScript developer, Opera Software ASA

More information about the whatwg mailing list