Access options:

Image to data URI convertor

author: mike foskett incept: 28th January 2010

last modified: 24th February 2010

A simple utility to convert an image into base 64 data URIs for embedding images.

It's best practice to optimise images prior to conversion via a tool such as SmushIt or Image Optimizer.

Embedded images should be stored in cacheable files such as flat, not dynamic, HTML and style sheets.

Note: The file size increases by approximately 30% which may be offset by serving as part of a compressed (gzip / deflate) file. Take a look at this simple gzip content method.

Note: IEv8 has the lowest maximum data URI size of 32768 Bytes. Upload is limited to that maximum. Because of the approximate 30% increase in the conversion it is possible the result is larger than IEv8 can actually handle.

Note: base 64 data URI embedded images do not work in IE less than version 8. Personally I circumvent this issue by having one style sheet which contains image reference data and a second containing data URIs. Conditional comments switch between them:


/* All browsers (contains image references) */
<style type="text/css">@import "page.css";</style>

/* All browsers except IE (contains data URIs) */
<!--[if !IE]><!-->
	<style type="text/css">@import "data_uri.css";</style>
<!--<![endif]-->

/* IEv8 and above (contains data URIs) */
<!--[if gte IE 8]>
	<style type="text/css">@import "data_uri.css";</style>
<![endif]-->

Further reading:

If you have any alternate resources why not email me or post them below for inclusion?

Have your say…

1

Nicolas Chevallier [http://www.nicolas-chevallier.fr/]

23 02 2010

Thanks for this tool. I will test with some basic navigation icons on my website.

2

sunnybear [http://www.webogroup.com/]

24 02 2010

@imports are evil - kill 'em!

There is also http://duris.ru/ with cross browser data:URI

3

mike foskett replies:

24 02 2010

Hi Sunnybear,

@imports are faster to load in IE than <link href="/css/basic.css" rel="stylesheet" type="text/css" />

I've added the resouce you bought to my attention.

Say what?

The commenting system used here is a modified version of comment_rave.