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 11:40:53 -0700
Message-ID: <CAMYvS2cnG03_F2Yr5du2-xQyTCJBydcac+2m+7WO2XHDp8PPig@mail.gmail.com>
To: Rik Cabanier <cabanier@gmail.com>
Cc: WHAT Working Group <whatwg@whatwg.org>
On Tue, Mar 12, 2013 at 11:15 AM, Rik Cabanier <cabanier@gmail.com> wrote:
> sounds good!
> I think this is a convenient and useful addition.

Great.

> do you want to keep doubles to define the dimensions instead of integers? If
> so, the size should probably  4 * ceil(sw) * ceil(sh)

I would prefer to use integers, and only used doubles to be consistent
with the other APIs like getImageData and createImageData. In this
case it would make more sense to use integers, since the width and
height are simply being used to interpret preexisting data in the
Uint8ClampedArray.

-Ken


> On Tue, Mar 12, 2013 at 10:50 AM, Kenneth Russell <kbr@google.com> wrote:
>>
>> 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 18:41:27 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 12 March 2013 18:41:27 GMT