[whatwg] toDataURL() and unsupported formats
Ian Hickson
ian at hixie.ch
Tue May 8 14:40:13 PDT 2007
On Sun, 21 May 2006, Anne van Kesteren wrote:
> > >
> > > http://whatwg.org/specs/web-apps/current-work/#todataurl0 defines
> > > that for unsupported values UAs must return PNG. How about returning
> > > null instead for unsupported types? Where there any reasons to go
> > > with something else?
> >
> > If you want a data: URL, you primarily want a data: URL. The type is
> > secondary. Thus getting null is never useful.
>
> If you want data: URL of a specific type, you primarily want a data: URL
> of a specific type. (Otherwise you would just do toDataURL() without
> mentioning the type at all and get a nice PNG back.) Doing string checks
> to see if that succeeded is more error prone than just doing
> `if(c.toDataURL(test))` or a try/catch(e) statement.
Well, as I see it the alternatives are:
// return PNG as fallback
function savePhotoEdits() {
var data = canvas.toDataURL('image/jpeg');
if (data.match(/^data:image\/png[;,]/))
warnUser(messages.savedAsPNG);
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = updateSavingStatus;
xhr.open("POST", "save");
xhr.setRequestHeader("Content-Type", "text/plain");
xhr.send(data);
}
// return nothing as fallback
function savePhotoEdits() {
var data = canvas.toDataURL('image/jpeg');
if (!data) {
warnUser(messages.savedAsPNG);
data = canvas.toDataURL();
}
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = updateSavingStatus;
xhr.open("POST", "save");
xhr.setRequestHeader("Content-Type", "text/plain");
xhr.send(data);
}
Since the warning might not be necessary anyway (e.g. because the server
might do the conversion silently), I don't think it's a big deal.
It could become more important in the future if the author wanted to
convert to HD Photo by preference, with fallback to JPEG before fallback
to PNG; but should that occur, we can always extend the method to support
multiple formats.
--
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