Skip to content
ALL IMAGE TOOLS56
HEIC to JPGHEIC → JPGHEIC to WebPHEIC → WEBPWebP to JPGWEBP → JPGWebP to PNGWEBP → PNGPNG to JPGPNG → JPGJPG to PNGJPG → PNGJPG to WebPJPG → WEBPPNG to WebPPNG → WEBPSVG to PNGSVG → PNGSVG to JPGSVG → JPGSVG to WebPSVG → WEBPAVIF to JPGAVIF → JPGAVIF to PNGAVIF → PNGAVIF to WebPAVIF → WEBPBMP to JPGBMP → JPGBMP to PNGBMP → PNGTIFF to JPGTIFF → JPGTIFF to PNGTIFF → PNGJFIF to JPGJFIF → JPGImage CompressorIMG → JPG · WEBPCompress Image to 100 KBIMG → JPG · WEBPCompress Image to 200 KBIMG → JPG · WEBPCompress Image to 1 MBIMG → JPG · WEBPCompress Image to 20 KBIMG → JPG · WEBPCompress Image to 50 KBIMG → JPG · WEBPCompress Image to 500 KBIMG → JPG · WEBPCompress Image to Target SizeIMG → JPG · WEBPImage ResizerIMG → IMGResize Image to 20 KBIMG → JPG · WEBPResize Image to 50 KBIMG → JPG · WEBPResize Image to 100 KBIMG → JPG · WEBPPhoto Resizer in KBIMG → JPG · WEBPImage CropperIMG → PNG · JPG · WEBPEXIF Data Viewer & RemoverIMG → DATAImage to Base64IMG → TXTPNG to ICOPNG → ICOFavicon GeneratorPNG → ZIPImage Color PaletteIMG → HEXRotate ImageIMG → PNG · JPG · WEBPFlip ImageIMG → PNG · JPG · WEBPAdd Border to ImageIMG → PNG · JPG · WEBPImage WatermarkerIMG → PNG · JPG · WEBPImage PixelatorIMG → PNG · JPG · WEBPCircle Image CropperIMG → PNG · WEBPImage SplitterIMG → ZIPSocial Media Image ResizerIMG → PNG · JPG · WEBPCompress PNGPNG → PNGICO to PNGICO → PNGBase64 to ImageTXT → IMGChange Image DPIIMG → IMGImage to TextIMG → TEXTResize GIFGIF → GIFGIF Speed ChangerGIF → GIFReverse GIFGIF → GIFSplit GIF into FramesGIF → ZIPGIF MakerIMAGES → GIF
ENGINE ATOBACCEPTS TEXT

Base64 to Image

ATOBTOOL 49 OF 190

Base64 to Image — Decode a String Back to a File

Paste Base64 or a data URI and download the image it encodes.

ENGINEATOB
ACCEPTSTEXT
MAX SIZENONE
UPLOADNEVER
01Paste a Base64 string or a whole data: URI into the Base64 pane.
02Click Decode to image — the format comes from the decoded bytes, not from any data: prefix.
03Adjust File name if you want a different stem, then click Download to save it.

About Base64 to Image

A Base64 string is an image with its bytes rewritten as text so it can travel inside HTML, CSS, JSON or an email body. This tool turns one back into a file. Paste a bare payload, a whole data: URI, a line-wrapped block out of a terminal or a PEM-style dump, or the entire img tag you copied from a page's source — the payload is pulled out of any of them. URL-safe Base64, the kind JWTs and many APIs emit, is translated for you, and missing padding is added back before anything is decoded. What the tool will not do is trust the label. The mediatype in front of a data URI is something a person typed, and data:image/png;base64, in front of JPEG bytes is one of the commonest pastes there is — so the format is read from the decoded magic bytes, the download is named from those, and any disagreement between the two is stated on the page rather than quietly resolved. The refusals are specific for the same reason: a percent-encoded data URI, a paste that was cut short mid-copy, and bytes that decode perfectly but are not an image are three different problems with three different answers, and the page tells you which one you have. Everything happens in this tab — the string never leaves your device.

Questions

What can I paste in — does it have to be a bare Base64 string?

No. A bare payload, a whole data: URI (parameters and all), a block that a terminal wrapped at 76 columns, and the entire img tag you copied out of a page's source all work. The payload is pulled out of the wrapper, whitespace is stripped, URL-safe characters are translated and missing padding is added back before anything is decoded.

The data URI said image/png but the file saved as .jpg. Why?

Because the bytes were JPEG. The mediatype in front of a data URI is a label somebody typed, and it is wrong often enough that this tool reads the format out of the decoded magic bytes instead. When the label and the bytes disagree, the download is named from the bytes and the page tells you that it happened rather than renaming your file quietly.

It says my paste is not Base64, but I copied it straight out of my terminal.

Two different faults produce that, and the page names which one you hit. A length one character past a whole four-character group cannot come from any Base64 string, so it means the copy was cut short — grab the whole thing again. A data: URI with no ;base64 marker is percent-encoded rather than Base64, so there is nothing there to decode at all.

Does it handle URL-safe Base64 from a JWT or an API?

Yes. The URL-safe alphabet swaps + and / for - and _, which plain atob rejects outright; both are translated back and any missing = padding is restored. The OUTPUT panel says whether that translation was needed, so you can see what the tool had to do to your string.

Can it decode an SVG data URI?

Yes, if the payload is genuinely Base64. The SVG is shown by handing it to an img element, which is the only way this site ever renders SVG — the markup is never inlined into the page, so nothing inside it can run. A data: URI whose SVG is percent-encoded rather than Base64 is refused with that reason named.

Is my file uploaded to a server?

No. Transmute processes everything locally in your browser using JavaScript and WebAssembly. Your files never leave your device — there is no server, no upload, no cloud processing.

Related