Image to Base64

Convert a JPG, PNG or WebP image into a Base64 data URI you can embed in HTML, CSS or JSON — instantly in your browser.

Drag & drop an image here

or click to browse — JPG, PNG or WebP

Image preview

How to use

  1. Drag and drop an image, or click to choose a JPG, PNG or WebP file.
  2. Pick an output format: data URI, raw Base64, <img> tag or CSS background.
  3. Copy the Base64 string or download it as a text file.

What is an image to Base64 converter?

An image to Base64 converter turns an image file into a long text string using Base64 encoding. That string can then be embedded directly inside your HTML, CSS, JavaScript or JSON, so the image travels with your code instead of being loaded as a separate file. Upload a JPG, PNG or WebP and this tool produces the encoded string instantly — as a ready-to-use data URI, raw Base64, an HTML <img> tag, or a CSS background rule. Everything happens in your browser, so your image is never uploaded to a server.

What is a data URI?

The most useful output here is a data URI. Instead of pointing to a file with a normal URL like logo.png, a data URI contains the entire image inline, in the form data:image/png;base64,iVBORw0KGgo…. The browser reads the MIME type (image/png), sees that it is Base64-encoded, decodes the rest, and renders the image — all without making a separate network request. You can drop a data URI straight into the src of an <img> tag or the url() of a CSS background-image, and it just works.

How image encoding works

Images are binary data, but HTML, CSS and JSON are text. Base64 bridges that gap by representing every three bytes of the image as four text characters drawn from a safe 64-character alphabet. This makes the data safe to embed anywhere text is allowed, at the cost of making it about 33% larger than the original binary. The converter reads your file's bytes locally, encodes them, and prefixes the result with the correct data: header based on the image type — producing output identical to what server-side encoders generate for the same file.

When to use Base64 images

Embedding an image as Base64 has real benefits in the right situations, and real downsides in the wrong ones. It is a good fit for:

  • Small icons and logos. Inlining a tiny image removes an HTTP request, which can speed up the first paint of a page.
  • CSS sprites and backgrounds. Small decorative images embedded directly in a stylesheet load with the CSS.
  • Email. Some workflows embed images inline so they display without external hosting.
  • Single-file documents. Self-contained HTML files or exports that must carry their images with them.
  • APIs and JSON. Sending an image inside a JSON payload, where binary cannot go directly.

The trade-offs

Base64 embedding is not free. Because the encoded string is about a third larger than the file, and because inlined images cannot be cached separately by the browser, large or frequently reused images are usually better served as normal files. Every page that includes the data URI re-downloads the whole image as part of the HTML or CSS, whereas a normal image is cached once and reused. A good rule of thumb: inline small images (a few kilobytes — icons, logos, tiny backgrounds) and link to larger ones the normal way. Used judiciously, Base64 images reduce requests; used for big images, they bloat your pages.

Supported formats

This converter supports the three most common web image formats: JPG/JPEG, PNG and WebP. The output data URI automatically carries the correct MIME type for the file you upload, so the browser knows how to render it. Transparency in PNG and WebP is preserved, because the encoding stores the exact original bytes — Base64 does not alter the image in any way, it only changes how it is represented.

How to use this tool

Drag and drop an image onto the upload area, or click to choose a file. The tool shows a preview along with the original and encoded sizes, and outputs the Base64 string in your chosen format — data URI, raw Base64, an <img> tag, or a CSS background. Click Copy to copy it or Download to save it as a text file. Because all the work happens locally in your browser, even when handling private images, nothing is uploaded and the conversion is instant.

Frequently asked questions

It converts an image into a Base64-encoded string (a data URI) that you can embed directly in HTML, CSS, JavaScript or JSON.

Yes, completely free with no sign-up.

No. The image is read and encoded entirely in your browser, so it never leaves your device.

A data URI embeds the whole image inline, like data:image/png;base64,…, so it can be used directly in an img src or CSS url() without a separate file.

JPG/JPEG, PNG and WebP. The output carries the correct MIME type automatically.

Base64 represents 3 bytes as 4 characters, so the encoded string is about 33% larger than the original file.

Usually no. Inlined images cannot be cached separately and add size to every page. Inline small icons and logos; link to large images normally.

No. Base64 stores the exact original bytes, so quality and transparency are unchanged — it only changes how the data is represented.

Yes. Choose the CSS background option, or paste the data URI into a background-image: url(...) rule.

There is no hard limit, but very large images produce huge strings; the tool warns you when a file is large.