Base64 Image Viewer
Decode and preview Base64 image strings or data URLs instantly in your browser.
Back to all tools on ToolForge
Image Preview
About Base64 Image Viewer
The Base64 Image Viewer decodes Base64-encoded image data and displays the resulting image. It accepts both raw Base64 strings and complete data URLs with MIME type prefixes.
Understanding Data URL Format
Base64 images use a data URL scheme to embed binary data as text:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA... | | | | | | | +-- Base64-encoded image data | | +-- Encoding type (always base64 for images) | +-- MIME type (image/png, image/jpeg, image/gif, etc.) +-- Data URL scheme prefix
Supported Image MIME Types
| MIME Type | Format | Characteristics |
|---|---|---|
image/png |
PNG | Lossless, supports transparency |
image/jpeg |
JPEG | Lossy, best for photos |
image/gif |
GIF | Supports animation, 256 colors |
image/webp |
WebP | Modern format, better compression |
image/svg+xml |
SVG | Vector graphics, scalable |
image/bmp |
BMP | Uncompressed bitmap |
Base64 Decoding Process
Converting Base64 text back to binary image data:
- Parse data URL: Extract MIME type and Base64 portion (remove
data:image/type;base64,prefix) - Validate characters: Ensure only valid Base64 characters: A-Z, a-z, 0-9, +, /, =
- Check padding: Verify length is multiple of 4 (add = if needed)
- Decode to binary: Convert each 4-char group to 3 bytes
- Create blob: Wrap binary data in Blob with correct MIME type
- Display: Generate object URL and set as image src
JavaScript Base64 to Image:
// Full data URL
const dataUrl = "data:image/png;base64,iVBORw0KG...";
// Extract Base64 portion
const base64Data = dataUrl.split(',')[1];
// Convert to binary
const binaryString = atob(base64Data);
// Create byte array
const bytes = new Uint8Array(binaryString.length);
for (let i = 0; i < binaryString.length; i++) {
bytes[i] = binaryString.charCodeAt(i);
}
// Create blob and display
const blob = new Blob([bytes], { type: 'image/png' });
const imageUrl = URL.createObjectURL(blob);
document.getElementById('preview').src = imageUrl;
Common Use Cases
- Verify Base64 images: Preview encoded images to confirm they decoded correctly
- Debug data URLs: Check if Base64 strings from APIs or databases are valid
- Extract embedded images: Save images from HTML/CSS that use data URLs
- Test image encoding: Verify that image-to-Base64 conversion worked properly
- Inspect email templates: View inline images embedded in HTML emails
- Validate API responses: Check Base64 image data returned from web services
Base64 Size Overhead
Base64 encoding increases data size compared to binary:
- Ratio: 4 Base64 characters encode 3 bytes of binary data
- Overhead: Approximately 33.3% size increase
- Formula:
encodedSize ≈ (originalSize / 3) × 4 - With data URL prefix: Additional ~20-30 characters for prefix
Binary Size vs Base64 Data URL Size: Original Image → Base64 String → Data URL 100 bytes → ~136 bytes → ~155 bytes 1 KB → ~1.36 KB → ~1.38 KB 10 KB → ~13.6 KB → ~13.6 KB 100 KB → ~136 KB → ~136 KB 1 MB → ~1.36 MB → ~1.36 MB Note: Overhead becomes negligible for larger images
Troubleshooting Base64 Images
If your Base64 image won't display, check these common issues:
- Missing prefix: Add
data:image/png;base64,if using raw Base64 - Invalid characters: Remove any spaces, newlines, or non-Base64 characters
- Wrong MIME type: Ensure prefix matches actual image format (PNG vs JPEG)
- Truncated data: Verify the Base64 string is complete (check for cut-off ending)
- Padding errors: Length should be multiple of 4 (add = padding if needed)
- Browser limits: Very large Base64 strings may exceed browser memory limits
MIME Type Detection
When the MIME type is missing or incorrect, you can detect it from the Base64 header:
| Format | Magic Bytes (hex) | Base64 Header |
|---|---|---|
| PNG | 89 50 4E 47 |
iVBORw0K |
| JPEG | FF D8 FF |
/9j/ |
| GIF | 47 49 46 38 |
R0lGOD |
| WebP | 52 49 46 46 |
UklGR |
| BMP | 42 4D |
Qk |
How to View Base64 Images
- Paste Base64 data: Copy your Base64 image string or data URL into the input box.
- Click Preview: The tool decodes the Base64 and displays the image instantly.
- Verify the image: Check that the decoded image displays correctly without artifacts.
- Download (optional): Click "Download Image" to save the decoded image as a file.
Tips
- Data URLs should start with
data:image/[type];base64,prefix - This tool automatically adds PNG prefix if missing
- Remove any whitespace or newlines from Base64 strings before pasting
- For large images, decoding may take a moment depending on string length
Frequently Asked Questions
- What is a Base64 data URL?
- A Base64 data URL embeds binary image data directly in text using the format: data:image/png;base64,[encoded data]. The MIME type (image/png, image/jpeg, etc.) tells the browser how to decode the image. The base64 portion contains the actual image data encoded as ASCII text.
- How do I extract Base64 data from a data URL?
- A data URL has three parts separated by commas: prefix (data:), MIME type with encoding (image/png;base64), and the actual Base64 data. To extract just the Base64 portion, remove everything before and including the first comma. Most tools accept both full data URLs and raw Base64 strings.
- Why does my Base64 image appear broken?
- Common causes include: missing or incorrect data URL prefix, invalid Base64 characters (only A-Z, a-z, 0-9, +, /, = are valid), incorrect padding (length must be multiple of 4), MIME type mismatch (e.g., claiming PNG but data is JPEG), or truncated/corrupted data from copy-paste errors.
- What MIME types are supported for Base64 images?
- Common image MIME types: image/png (PNG graphics), image/jpeg (JPEG photos), image/gif (animated GIFs), image/webp (modern WebP), image/svg+xml (SVG vectors), image/bmp (bitmap). The MIME type must match the actual image format for correct decoding.
- How do I convert an image to Base64?
- Use the image-to-base64 tool to upload and encode images. Programmatically: in JavaScript use FileReader.readAsDataURL(), in Python use base64.b64encode() with file bytes, in Node.js use Buffer.from(fs.readFileSync(path)).toString('base64'). The result can be prefixed with data:image/type;base64, for use as data URLs.
- What is Base64 padding and why does it matter?
- Base64 padding uses = characters to ensure the encoded string length is a multiple of 4. One = means 2 bytes of input (16 bits encoded to 3 chars + padding). Two = means 1 byte of input (8 bits encoded to 2 chars + padding). Missing or extra padding causes decoding failures.