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

Kenneth Russell kbr at google.com
Tue Mar 12 11:40:53 PDT 2013


On Tue, Mar 12, 2013 at 11:15 AM, Rik Cabanier <cabanier at 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 at 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 at 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 at 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
>> >
>> >
>
>



More information about the whatwg mailing list