[whatwg] Why can't ImageBitmap objects have width and height attributes? (and other e-mails)
Ian Hickson
ian at hixie.ch
Wed Jul 17 17:17:53 PDT 2013
On Tue, 18 Dec 2012, Kevin Gadd wrote:
>
> Is it possible to expose the width/height of an ImageBitmap, or even
> expose all the rectangle coordinates? Exposing width/height would be
> nice for parity with Image and Canvas when writing functions that accept
> any drawable image source.
>
> Thanks for the prompt action here, this looks like a straightforward
> solution.
I've added height, width, and pixel density. Not sure what you meant by
the other coordinates.
On Tue, 18 Dec 2012, Kevin Gadd wrote:
>
> Sorry, upon reading over the ImageBitmap part of the spec again I'm
> confused: Why is constructing an ImageBitmap asynchronous?
Because it might involve network I/O.
> I thought any decoding isn't supposed to happen until drawImage, so I
> don't really understand why this operation involves a callback and a
> delay. Making ImageBitmap creation async means that you *cannot* use
> this as a replacement for drawImage source rectangles unless you know
> all possible source rectangles in advance. This is not possible for
> many, many use cases (scrolling through a bitmap would be one trivial
> example).
Yeah, it's not supposed to be a replacement for drawImage().
> Is it async because it supports using Video and Blob as the source?
Mainly Blob, but maybe other things in the future.
> I really love the feature set (being able to pass ImageData in is going
> to be a huge boon - no more temporary canvases just to create images
> from pixel data!) but if it's async-only I don't know how useful it will
> be for the issues that led me to starting this discussion thread in the
> first place.
Can you elaborate on the specific use cases you have in mind?
On Tue, 18 Dec 2012, Kevin Gadd wrote:
>
> How do you wait synchronously for a callback from inside
> requestAnimationFrame?
You return and wait for another frame.
> Furthermore, wouldn't that mean returning once to the event loop for
> each individual drawImage call you wish to make using a source rectangle
> - so for a single scene containing lots of dynamic source rectangles you
> could end up having to wait for dozens of callbacks.
I don't understand. Why can't you prepare them ahead of time all together?
(As in the example in the spec, for instance.)
> Each time you wait for that callback, won't any pending drawing
> operations to your canvas get flushed, resulting in the scene slowly
> rendering onscreen?
Right, don't draw anything until you're ready to draw it all.
On Wed, 19 Dec 2012, Robert O'Callahan wrote:
>
> It seems to me a synchronous constructor that creates an ImageBitmap for
> a subimage of another ImageBitmap (but not other kind of source!) will
> be needed.
What's the use case?
On Tue, 18 Dec 2012, Rik Cabanier wrote:
>
> Did you mean to say a synchronous constructor?
> Reading the new spec (
> http://www.whatwg.org/specs/web-apps/current-work/#imagebitmap), I still
> fail to see how this is better than a drawimage with dx=dy=0 and
> dw/dy=canvas width/height
It's not. If you can use drawImage(), you should do so.
BitmapImage is mainly to have a way to send an <img> to a worker so you
can draw images in a worker, since workers can't have <img> objects.
On Mon, 15 Jul 2013, Justin Novosad wrote:
>
> We've recently started implementing ImageBitmap in Blink. While writing
> tests, we quickly realized that it is quite anoying that ImageBitmaps
> are completely opaque objects. When converting animation tests that
> used to use image elements over to using ImageBitmaps, we're ending up
> having to pass triplets (ImagBitmap, width, height) where we used to
> just have an image.
>
> It would be much more convenient if ImageBitmaps exposed their width and
> height in pixels as read-only attributes. I don't see any technical
> reason why we couldn't do that. Am I missing something?
Nope. It is now added. Also density.
The density aspect of this might be pointless, given the failure of
getImageDataHD(); if we're dropping that one, I'll drop this one at the
same time.
--
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
More information about the whatwg
mailing list