- From: Rik Cabanier <cabanier@gmail.com>
- Date: Wed, 17 Jul 2013 20:16:34 -0700
- To: Ian Hickson <ian@hixie.ch>
- Cc: whatwg@whatwg.org
On Wed, Jul 17, 2013 at 5:17 PM, Ian Hickson <ian@hixie.ch> wrote: > 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. > Yes, please drop it since the HD methods are going away from the one implementation.
Received on Thursday, 18 July 2013 03:17:01 UTC