[whatwg] Add EXIF metadata support in Canvas.toBlob?
David Flanagan
dflanagan at mozilla.com
Fri Jun 7 13:42:24 PDT 2013
If the second argument to Canvas.toBlob() and Canvas.toBlobHD() is
"image/jpeg", then these methods support a third argument to specify
JPEG compression level.
The spec
(http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#a-serialization-of-the-bitmap-as-a-file)
says:
> A future version of this specification will probably define other
> parameters to be passed to these methods to allow authors to more
> carefully control compression settings, image metadata, etc.
I would like to propose the addition of a fourth argument (for the JPEG
case only) that would specify EXIF metadata to be included in the JPEG
blob. (I have not tried yet, but I'm assuming that we could define some
suitable JSON serialization format for EXIF data. If not, then even
allowing a binary blob of EXIF data as the fourth argument would be
helpful.)
The use case for this feature is image editing applications, like the
Gallery app on FirefoxOS devices. Whenever that app crops or edits a
photo it encodes the edited photo with Canvas.toBlob(), and the process
strips all metadata from the photo. Reading EXIF data from a JPEG blob
is relatively straightforward can can be done with JavaScript, but
inserting EXIF data into an existing blob is much harder: this is a task
that is best done when the JPEG blob is being created, which means that
it is a feature that belongs in toBlob and can not be done efficiently
with an external library.
[A related, but perhaps too ambitious, proposal is to allow direct
read/write access to EXIF metadata via HTMLImageElement. The primary
use case for read access is to enable web apps to trivially determine
when, where, and how a photo was taken and also to determine authorship
and copyright information for an image. The primary use case for write
access might be for selectively stripping metadata. It would be nice to
be able to protect user privacy with code as simple as |delete
image.metadata.geolocation| for example.]
David Flanagan
More information about the whatwg
mailing list