Switch direction at the top to decode a data URL you already have.
Why Base64 is a third bigger
Base64 writes every 3 bytes of the file as 4 plain text characters, so the encoded text is about 33% larger than the image itself, plus a short data:image/png;base64, prefix for a data URL. Each image shows both sizes so you can see the cost before you paste it in.
When a data URL makes sense
Embedding is handy for small things: icons, tiny backgrounds, email signatures, a favicon or a single file that must work offline. For anything over roughly 10 KB, a normal image file is usually better: it can be cached by the browser, it loads in parallel with the page, and it keeps your HTML and CSS small. Large images get a reminder about this.
Decoding Base64
Paste a full data URL, a CSS url() line, an img tag or just the Base64 text. Spaces, line breaks and the URL-safe letters - and _ are accepted, and missing padding is added. The type is read from the first bytes of the file itself, not from the label, so a PNG mislabelled as JPEG still downloads with the right extension. If the text is not valid Base64 or is not an image, you get a plain explanation.
Private by design
Images are read and converted on this page in your browser. Nothing is uploaded, and the files never leave your device.