filetity
Paste base64 or a data URL
The picture

Nothing decoded yet. The picture appears here as you paste.

LocalThis runs in your browser. Nothing you paste is sent anywhere.

BASE64 -> IMAGE · Local tool

Base64 to Image

Paste base64 or a data URL and get the picture back.

Last updated

How do I turn base64 back into an image?

Paste the base64 into filetity's decoder and the picture appears beside it as you type, ready to save. It takes a bare payload or a whole data: URL, in the standard alphabet or the URL-safe one, and the line breaks a copy out of a terminal or a JSON file leaves behind are stripped rather than treated as an error. The format comes from the first bytes of the decoded data rather than from the label on the data URL, because the label was written by whatever produced the string while the bytes came from the actual file, so a payload labelled PNG that is really a JPEG is saved with the extension that will actually open. Everything is decoded in the browser tab, which matters because base64 images in code are often signatures, ID scans and screenshots.

  1. 01 / Your device

    the file stays here

  2. 02 / Browser memory

    the work runs locally

  3. 03 / Back to you

    saved on this device

When you would use this

Situations, not settings.

A base64 blob in an API response or a log
Paste it and see what it actually is, rather than guessing from the field name. The format comes from the bytes, so a mislabelled payload still opens.
An avatar or a signature stored in a database column
Pull the value out, paste it, and save the file. Nothing is uploaded, which matters when the column holds ID scans or signatures.
Checking whether a data URL in your CSS is the right picture
The picture appears as you paste, so you find out in a second instead of deploying and looking.

How it works / no cloud

A conversion engine, not an upload form.

The payload is decoded in the page and the format is read from the first bytes rather than from the label on the data URL, because the label comes from whatever produced the paste and the bytes come from the actual file. A mislabelled PNG that is really a JPEG is saved with the right extension.

  • Offline ready
  • Installable app
  • No file limit queue

Straight answers

No accordion. Nothing hidden.

Is it free?
Yes, with no watermark and no page limit.
Does it need an account?
No. There is no account system.
Is my file processed on my device?
Yes. The file is read by your browser and never uploaded. There is no server to send it to.
What formats are supported?
Base64 in, with or without a data: prefix, in the standard or URL-safe alphabet. PNG, JPG, GIF, WebP, AVIF, SVG, BMP and ICO recognised and saved.
What are the limits?
Held in memory, so a very large payload is limited by the browser rather than the tool. Base64 that decodes to something other than an image is refused with the reason.
Does it work on mobile?
Yes, on any modern mobile browser. Large files are limited by the memory the phone gives the browser.
Does it work offline?
Yes, once the page has loaded. The tool keeps working with no network connection.
Do I need to include the data:image/png;base64, part?
No. Paste it with the prefix or without, whichever you happened to copy. The format is worked out from the decoded bytes either way, so a bare payload gets the same result as a full data URL and neither has to be tidied up first.
Why does it say my base64 is not an image?
Because base64 carries anything, so a clean decode does not mean a picture. If the payload was a PDF, a font or a fragment of JSON, it decodes perfectly and is still not something to draw. The message says which case you are in rather than showing a broken image icon.
It has line breaks in it. Does that matter?
No. Whitespace is not part of base64 and is stripped before decoding, so a payload copied out of a terminal, a JSON file or an email header works with its line wrapping intact. The URL-safe alphabet, with dashes and underscores instead of plus and slash, is accepted too.
Is the picture uploaded anywhere to render it?
No. The bytes are turned into a local object in your browser and drawn from there, so nothing crosses the network. That matters because base64 images in code are frequently signatures, ID scans and screenshots of things that should not be pasted into a stranger's site.
Why is the saved file a different type from what I expected?
Because the bytes disagreed with the label. A data URL saying image/png whose payload starts with the JPEG marker is saved as a .jpg, since the prefix was written by whatever produced the string and the bytes came from the file itself. Trusting the label would give you a .png that no image viewer will open.

Keep working locally

3 available · more coming