Image to Base64 Converter -- HTML, CSS & JSON

Convert image files to base64 encoded strings

Upload Image

πŸ“
Drop image here or click to select
PNG, JPEG, GIF, WebP, SVG supported
Uploaded image preview
Format
β€”
Size
β€”
Dimensions
β€”
Base64 Length
β€”
⚠️ Large file detected. Base64 encoding increases file size by ~33%. Consider using external hosting for images over 10KB.

Quick Reference

HTML Image Tag

<img src="data:image/png;base64,iVBORw0KGgo..." alt="Description">

CSS Background

background-image: url('data:image/png;base64,iVBORw0KGgo...');

JavaScript/JSON

var imageData = "data:image/png;base64,iVBORw0KGgo...";

React/JSX

<img src={`data:image/png;base64,${base64String}`} alt="Description" />

What is Base64 Image Encoding?

Base64 is a binary-to-text encoding scheme that converts image data into a string of ASCII characters. It uses 64 printable characters (A-Z, a-z, 0-9, +, /) to represent binary data, allowing images to be embedded directly in HTML, CSS, or JSON files.

When you convert an image to Base64, you get a Data URL (also called Data URI) that looks like:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA...

The format is: data:[MIME type];base64,[encoded data]

When to Use Base64 Images

βœ… Good Use Cases

  • Small icons and logos β€” Images under 5-10KB where the 33% overhead is negligible
  • Single-file HTML exports β€” Create portable documents with embedded assets
  • Email templates β€” Some email clients block external images by default
  • Critical above-the-fold images β€” Eliminate render-blocking HTTP requests
  • CSS sprites and patterns β€” Small repeating backgrounds in stylesheets
  • API responses β€” Return images in JSON without separate file hosting
  • Offline applications β€” Bundle images directly in code for PWAs

❌ When to Avoid Base64

  • Large images β€” Photos or graphics over 10-20KB
  • Images used on multiple pages β€” Can't benefit from browser caching
  • Performance-critical pages β€” Base64 increases HTML size and parse time
  • Images that change frequently β€” Requires re-encoding on every update

Size Impact: Original vs Base64

Base64 encoding increases file size by approximately 33% because it uses 6 bits per character to represent 8 bits of data. Here's what that means in practice:

Original Size Base64 Size Recommendation
1 KB ~1.3 KB βœ… Ideal for Base64
5 KB ~6.7 KB βœ… Good for Base64
10 KB ~13.3 KB ⚠️ Consider trade-offs
50 KB ~66.7 KB ❌ Use regular file
100 KB ~133.3 KB ❌ Use regular file

Rule of thumb: If an image is under 10KB and used only once, Base64 is often beneficial. Above 10KB, the size penalty usually outweighs the saved HTTP request.

Base64 vs Data URL: What's the Difference?

These terms are often used interchangeably, but they're slightly different:

  • Base64 β€” The encoding method that converts binary to text (just the encoded characters)
  • Data URL β€” The complete URI scheme including MIME type prefix: data:image/png;base64,...

Browsers need the full Data URL format to display inline images. Raw Base64 is useful when the MIME type is handled separately (e.g., in an API that specifies content type).

Common Mistakes to Avoid

  • Forgetting the MIME type β€” Always include data:image/png;base64, prefix for browser display
  • Using Base64 for large images β€” The 33% overhead adds up quickly
  • Embedding the same image multiple times β€” Each instance duplicates the full string; use CSS classes instead
  • Not optimizing before encoding β€” Compress images first with tools like TinyPNG
  • Breaking strings across lines β€” Base64 strings must be continuous (no line breaks) in most contexts

Frequently Asked Questions

What is Base64 image encoding?
Base64 is a binary-to-text encoding that converts image data into ASCII characters. It represents binary data using 64 printable characters (A-Z, a-z, 0-9, +, /), allowing images to be embedded directly in HTML, CSS, or JSON without separate file requests.
Why does Base64 increase file size by 33%?
Base64 uses 6 bits per character to represent 8 bits of binary data. This means 3 bytes of image data become 4 characters of Base64 text, resulting in a 33% size increase. For example, a 10KB image becomes approximately 13.3KB when Base64 encoded.
Can Base64 images be cached by browsers?
No, Base64 images embedded inline cannot be cached separately from the HTML/CSS document they're in. This is why Base64 is best for small, frequently-changing images or single-use assets, while larger images should use regular URLs for caching benefits.
What image formats can be converted to Base64?
Any image format can be Base64 encoded, including PNG, JPEG, GIF, WebP, SVG, ICO, and BMP. The format is preserved in the Data URL's MIME type (e.g., data:image/png;base64, or data:image/svg+xml;base64,).
Is it safe to convert images to Base64 online?
This tool processes images entirely in your browser using JavaScript. No image data is uploaded to any server. The conversion happens client-side, making it safe for sensitive or private images.
How do I embed a Base64 image in HTML?
Use the Data URL directly in the src attribute: <img src="data:image/png;base64,iVBORw0KGgo..." alt="Description">. The browser decodes and displays the image without making an additional HTTP request.
How do I use Base64 images in CSS?
Use the Data URL in the url() function: background-image: url('data:image/png;base64,iVBORw0KGgo...');. This is useful for small background patterns, icons in pseudo-elements, or sprites.
What is the maximum size for Base64 images?
There's no strict limit in modern browsers. Older Internet Explorer versions had a 32KB limit for Data URLs. Modern browsers handle larger sizes, but images over 10KB are generally better served as separate files for performance reasons.
Does Base64 encoding affect image quality?
No, Base64 is a lossless encodingβ€”the image data is preserved exactly. The decoded image is identical to the original. Quality loss only occurs if you compress the image before encoding.
Can I convert SVG to Base64?
Yes, SVG images can be Base64 encoded. The MIME type will be data:image/svg+xml;base64,. However, for SVGs, you can also use URL encoding instead of Base64, which is often more compact since SVG is already text.

Related Tools

Related Tools

View all tools

Image to Base64 Converter FAQ

What is Base64 image encoding?

Base64 is a binary-to-text encoding that converts image data into ASCII characters. It represents binary data using 64 printable characters (A-Z, a-z, 0-9, +, /), allowing images to be embedded directly in HTML, CSS, or JSON without separate file requests.

Why does Base64 increase file size by 33%?

Base64 uses 6 bits per character to represent 8 bits of binary data. This means 3 bytes of image data become 4 characters of Base64 text, resulting in a 33% size increase. For example, a 10KB image becomes approximately 13.3KB when Base64 encoded.

When should I use Base64 images instead of regular image files?

Use Base64 for small images under 10KB (icons, logos, small UI elements), single-file HTML exports, email templates where external images may be blocked, reducing HTTP requests for critical above-the-fold images, and embedding images in JSON API responses.

What is the difference between Base64 and Data URL?

A Data URL includes the MIME type prefix (like data:image/png;base64,) followed by the Base64 string. Raw Base64 is just the encoded characters without the prefix. Data URLs are what browsers need to display inline images; raw Base64 is used when the MIME type is handled separately.

Can Base64 images be cached by browsers?

No, Base64 images embedded inline cannot be cached separately from the HTML/CSS document they're in. This is why Base64 is best for small, frequently-changing images or single-use assets, while larger images should use regular URLs for caching benefits.

What image formats can be converted to Base64?

Any image format can be Base64 encoded, including PNG, JPEG, GIF, WebP, SVG, ICO, and BMP. The format is preserved in the Data URL's MIME type (e.g., data:image/png;base64, or data:image/svg+xml;base64,).

Is it safe to convert images to Base64 online?

This tool processes images entirely in your browser using JavaScript. No image data is uploaded to any server. The conversion happens client-side, making it safe for sensitive or private images.

How do I use Base64 images in HTML?

Use the Data URL directly in the src attribute: <img src="data:image/png;base64,iVBORw0KGgo..." alt="Description">. The browser decodes and displays the image without making an additional HTTP request.

How do I use Base64 images in CSS?

Use the Data URL in the url() function: background-image: url('data:image/png;base64,iVBORw0KGgo...');. This is useful for small background patterns, icons in pseudo-elements, or sprites.

What is the maximum size for Base64 images?

There's no strict limit, but practical limits exist. Internet Explorer had a 32KB limit for Data URLs. Modern browsers handle larger sizes, but images over 10KB are generally better served as separate files for performance. Very large Base64 strings can slow page parsing.

Request a New Tool
Improve This Tool