Base64 to Image Converter - Online Decode & Preview
Decode Base64 encoded strings back into viewable images and download them as PNG. Useful for debugging APIs and data URIs. Secure local processing.
UD5 Toolkit
Progressive Decode, Frame Inspection & Metadata Extraction — Powered by the Web ImageDecoder API
Drop Image Here
or click to browse
JPEG, PNG, WebP, AVIF, GIF, BMP<img> tag which handles decoding automatically in a black-box manner, ImageDecoder allows you to decode images frame-by-frame, track decoding progress, extract detailed metadata, and even perform progressive decoding where partial image data yields a preview before the full image loads. It's part of the WebCodecs family of APIs, designed for high-performance media processing directly in the browser.
completeFramesOnly: false during decode, returning partial frames that can be rendered right away. This technique dramatically improves perceived performance and user experience.
<img> elements.
| Feature | <img> Tag | ImageDecoder API |
|---|---|---|
| Automatic decoding | ✅ Yes | ❌ Manual control |
| Progressive rendering | ⚠ Browser-dependent | ✅ Full control |
| Frame-level access | ❌ Not available | ✅ Every frame accessible |
| Metadata before decode | ❌ Must load fully | ✅ Available via tracks |
| Decode progress tracking | ❌ Limited | ✅ Real-time progress |
| Memory efficiency | ⚠ Automatic | ✅ Selective frame decoding |
'ImageDecoder' in window and provide a fallback (such as using <img> or createImageBitmap). This demo tool includes automatic detection and will warn you if your browser lacks support.
decode({frameIndex: n}). Each decoded VideoFrame includes timing information, so you can precisely control playback speed, jump to specific frames, or even extract individual frames as still images. The API also exposes the total frame count via tracks[0].frameCount — use our frame strip viewer above to browse through every frame of an animated image interactively.
if ('ImageDecoder' in window) {
// ImageDecoder API is available
const decoder = new ImageDecoder({type: 'file', data: arrayBuffer});
const result = await decoder.decode({frameIndex: 0});
// ... use result.image (a VideoFrame)
} else {
// Fallback: use createImageBitmap or <img> tag
const bitmap = await createImageBitmap(blob);
}
This demo tool runs this check automatically on page load and displays the API status badge at the top of the page.
<img> tag automatically applies EXIF orientation, color space conversions, and other corrections. With ImageDecoder, you're responsible for handling these yourself if needed. This is actually an advantage for applications that need pixel-perfect, unmodified image data. Check the tracks metadata for color space information that can guide your rendering.
ReadableStream — as data chunks arrive over the network, the decoder can produce increasingly complete frames that naturally transition from blurry to sharp. For a true progressive decode demo, try loading a large image via URL with the "Complete Frames Only" option disabled.
Decode Base64 encoded strings back into viewable images and download them as PNG. Useful for debugging APIs and data URIs. Secure local processing.
Transform any image into a Base64 data URI for embedding directly into HTML, CSS, or JSON. Drag and drop support. Entirely browser-side conversion.
Combine multiple static images into a single animated GIF. Adjust frame delay and order. No upload, in‑browser encoding.
Paste a Base64 data URI and download the image directly. Supports JPEG, PNG, GIF, WebP. Safe local processing.
Configure how your PWA launches: focus existing or create new. Test with the launch_handler manifest field.
Compress and decompress text using the browser's native Compression Streams API. See the binary output size.
Query the permission state of camera, microphone, geolocation, and more. See the response and learn the API.
Unified input demo: see pressure, tilt, and type from any pointer. Compare pointerType values. Essential for drawing apps.
Toggle a screen wake lock to prevent the device from dimming or sleeping. See the lock state and learn the API.
Decode individual video frames from a local file using the VideoDecoder API. Step through frames. Cutting‑edge browser feature.
Experiment with the Federated Credential Management API. Simulate a sign‑in flow without third‑party cookies. Privacy‑first.
Request HID devices and list them. Read input reports and send output. For custom hardware and controllers.
Request permission and detect when the user is idle (away from keyboard). See screen lock state. For native‑like apps.
Demonstrate how the Web OTP API automatically reads one‑time codes from SMS (mobile). Simulation with a fake SMS input.
Acquire and release locks across tabs. Prevent race conditions in IndexedDB or localStorage. Visual queue and lock state.
Connect a gamepad and see all button presses and axis movements visually. Check that every input is detected correctly.
Trigger different vibration patterns on mobile devices. Test if your phone supports haptic feedback. Simple demo.
See your device's battery level, charging status, and discharge time using the Battery Status API. Fun utility.
Check current screen orientation and test the lock API. Useful for mobile web apps. Demo with code.
Test the new HTML popover attribute for creating accessible tooltips, menus, and dialogs without JavaScript. Copy code snippets.
See the View Transitions API in action. Cross‑fade and morph between two states. Copy the JavaScript starter code.
Encode latitude/longitude into a geohash string and decode a geohash back to coordinates with precision info. Local algorithm.
Experiment with the Async Clipboard API: read/write text and images from the clipboard. Verify permissions and see demo code.
Test the Web Share API by sharing text, links, and files directly from the browser. Check compatibility and see example code.
Enter an API URL and quickly check its HTTP status code and response time. See response headers and body. Browser fetch.
Pick a method, URL, headers, and body, then send an HTTP request directly from your browser. Debug APIs easily.
Paste a data: URL and instantly download the file it represents. Supports all MIME types. Simple extraction.
Enter Braille dot numbers (1‑6) or paste Unicode Braille to decode into English text. Companion to text‑to‑Braille.
Paste a raw cookie string and see a formatted key‑value table. Debug session cookies and understand flags. Runs in browser.
Generate random JSON data with customizable fields (users, products, orders). Useful for frontend mocking. All local.