views:

60

answers:

3

I need to send an html response to the browser containing a 1920x1080 png. It's a screenshot taken by an html query.

I encode the image in base64 and sends it embedded as an text/html content-type. Something simple like :

<HTML><HEAD>Whatever</HEAD><BODY><img src="data:image/png;base64,data"/></BODY></HTML>

It works fine on FF and Chrome, the problem is I need to support IE8. IE8 as a limit on the length of the data:uri.

If I compress the image so the png encoding is under 32k (about 600x500) I lose too much information.

What would be the easiest work around for this problem? (I don't have access to a server to host the image or such)

+3  A: 

You could always break apart the image into 4 (or more) and encode each section separately.

cobbal
+1  A: 

Couldn't you just store the image somewhere, return its path, and then change src to the path you just generated?

x3ro
No, I cannot store the image elsewhere or make its path available for outside request.
Martin
A: 

In the end we dropped IE8 support.

I'm lucky it's for internal debugging purpose only.

The problem still stand though. Hopefully IE9 won't have data:uri limit.

Martin