W3C home > Mailing lists > Public > whatwg@whatwg.org > March 2013

Re: [whatwg] Proposal: ImageData constructor or factory method with preexisting data

From: Kenneth Russell <kbr@google.com>
Date: Tue, 12 Mar 2013 10:50:23 -0700
Message-ID: <CAMYvS2eH54qHb5u=z4ff-2RRyp8N4KOcw_uHnffQZGWpBddcbQ@mail.gmail.com>
To: Rik Cabanier <cabanier@gmail.com>
Cc: WHAT Working Group <whatwg@whatwg.org>
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 <cabanier@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 <kbr@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
>
>
Received on Tuesday, 12 March 2013 17:50:49 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 12 March 2013 17:50:49 GMT