It should simply reference the Uint8ClampedArray, not copy it or do
anything else esoteric. The only way to display an ImageData in the 2D
canvas context is via the putImageData API. I am not proposing
changing those semantics.

-Ken



On Mon, Mar 11, 2013 at 5:00 PM, Rik Cabanier <caban...@gmail.com> wrote:
> Do you expect that createImageData creates an internal copy of the
> Uint8ClampedArray object or is it live?
>
>
> On Mon, Mar 11, 2013 at 4:28 PM, Kenneth Russell <k...@google.com> wrote:
>>
>> It would be useful to be able to create an ImageData [1] object with
>> preexisting data. The main use case is to display arbitrary data in
>> the 2D canvas context with no data copies.
>>
>> Proposed IDL:
>>
>> [NoInterfaceObject]
>> interface ImageDataFactories {
>>   ImageData createImageData(Uint8ClampedArray data, double sw, double sh);
>> };
>> Window implements ImageDataFactories;
>> WorkerGlobalScope implements ImageDataFactories;
>>
>> createImageData would throw an exception if the length of the
>> Uint8ClampedArray was not equal to 4 * floor(sw) * floor(sh), or at
>> least, if the length of the array was less than this value. (Similar
>> wording would be used to that of CanvasRenderingContext2D's
>> createImageData.)
>>
>> I don't think it is necessary to provide a createImageDataHD in this
>> interface. The caller will know the devicePixelRatio and determine
>> whether to generate high-DPI data.
>>
>> [1]
>> http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#imagedata
>>
>> Comments?
>>
>> Thanks,
>>
>> -Ken
>
>

Reply via email to