When on, every resolution inside each ICO becomes its own PNG. When off, use the per-file size menu (default is the largest square).
ICO files often bundle 16×16 through 256×256 (and more) for favicons and Windows shortcuts. PNG-in-ICO images are copied without recompression; legacy bitmap entries are rasterized with alpha preserved. Nothing is uploaded to SynthQuery.
Drag & drop ICO files here
Up to 20 files · 10.00 MB max each · batch extract with transparency
About this tool
An ICO to PNG converter closes the loop between Windows icon containers and the raster formats designers and web pipelines understand best. ICO files are not a single image: they are archives that bundle one or more bitmaps—often several square resolutions so the operating system or browser can pick the sharpest match for a taskbar, tab, or shortcut. SynthQuery's tool unpacks those frames locally in your browser, preserves transparency when the source data supports it, and hands you standard PNG files you can edit in Figma, drop into a React public folder, or feed into documentation. Because decoding runs entirely on your device, unreleased branding, internal app icons, and client deliverables never traverse a third-party upload API.
Many professionals encounter ICO files when they inherit a legacy favicon.ico from an older site, download assets from a Windows application, or receive a shortcut icon from a vendor. Opening ICO directly in creative tools is hit-or-miss; extracting to PNG gives you a predictable, widely supported format with an alpha channel you can inspect on a checkerboard. Multi-resolution ICOs are especially common for favicons: the same file might embed 16×16, 32×32, 48×48, and 256×256 variants. This utility lets you export just the largest frame for marketing slides, or explode every embedded size into separate PNGs when you need to audit or rebuild an icon set without redrawing from scratch.
The workflow is intentionally straightforward for both quick one-offs and batch operations. You drag ICO files into the drop zone or activate the file picker with the keyboard, optionally toggle extraction of all embedded sizes, choose a specific resolution when you only need one frame from a multi-entry icon, and convert. Progress and error states are isolated per row so a corrupt download does not block the rest of your queue. Downloads can be single PNGs, per-row ZIPs when multiple sizes emerge from one ICO, or one master archive for an entire batch—mirroring patterns you may already know from our other image converters. The sections below explain usage in depth, highlight transparency and performance characteristics, explore real scenarios, compare approaches, and answer frequent questions about ICO structure and quality.
What this tool does
Transparency preservation is central to the pipeline. Modern ICO files frequently store the high-resolution slot as a PNG bitstream inside the container; in that case SynthQuery copies those bytes directly into your download, avoiding generational loss from unnecessary recompression. Smaller frames often use legacy BMP-derived DIB payloads with optional AND masks; the decoder interprets 32-bit BGRA samples, applies mask semantics where present, and rasterizes to RGBA before a single lossless PNG encode through the Canvas API. Eight-bit and twenty-four-bit DIB icons are supported within the same constraints documented in our shared ICO decoder—compressed BMP-in-ICO variants that fall outside BI_RGB remain unsupported and will surface explicit errors rather than silently corrupting pixels.
Multi-resolution handling differentiates this tool from a naive “open and export” workflow. The directory listing embedded in every ICO describes width, height, and byte offsets for each frame; SynthQuery walks that table, validates bounds, and either targets one index or iterates all entries. Batch conversion processes files sequentially to keep peak memory predictable on laptops and tablets, while still giving you ZIP packaging via JSZip when you want one download for many outputs. Input validation rejects non-ICO picks with a toast, and per-row errors describe parser failures—wrong magic bytes, cursor files mislabeled as icons, truncated payloads—so you can fix the source or try another exporter.
The interface follows SynthQuery's ToolShell layout: options sit in a compact card on wide screens beside the hero drop zone, and stack vertically on narrow viewports. Interactive controls expose data-testid hooks for Playwright suites. Keyboard focus rings remain visible, labels tie to switches and selects, and preview images use empty alt text because filenames are announced in adjacent text. Core Web Vitals are respected by avoiding automatic conversion on page load—work begins only after you click convert—and by dynamic import of JSZip at download time so the initial JavaScript payload stays smaller than bundling the archive library eagerly.
Technical details
Structurally, an ICO begins with an ICONDIR header: reserved zero, type value one for icons (as opposed to two for cursors), and a count of images. Each ICONDIRENTRY records nominal width and height—where zero in either byte conventionally means 256—plus color counts, hotspot fields reused as zero for icons, payload size, and file offset. Payloads are either raw PNG streams starting with the PNG signature or DIB bitmaps without the BITMAPFILEHEADER wrapper, storing XOR bitmap data followed by an optional monochrome AND mask for per-pixel transparency in older conventions.
PNG-in-ICO became prevalent with Windows Vista-era tooling because DEFLATE compression keeps large icons smaller than uncompressed DIB storage. When SynthQuery detects the PNG signature at the start of a payload, it emits identical bytes as your downloaded PNG, so color profiles and alpha semantics match the embedded source. DIB decoding respects bottom-up row order, combines AND masks with alpha for 32-bit sources, and maps palette entries for eight-bit icons. Unsupported compression modes in DIB payloads produce clear errors; if you encounter them, re-export from a design tool using standard 32-bit or PNG-in-ICO settings.
Standalone PNG files use a different container: chunks for IHDR dimensions, IDAT compressed pixels, and optional tEXt or iTXt metadata. After extraction you can manipulate PNGs with any standards-compliant tool. Remember that repeatedly re-encoding PNGs through lossy pipelines (for example, forcing JPEG intermediates) will damage edges; keep ICO→PNG→editor→PNG as your lossless spine until you deliberately target a lossy format for delivery.
Use cases
Favicon extraction is the most common motivation. You may need a crisp PNG of the 32×32 tab icon to illustrate a design review, or you may want every embedded size to verify that a third-party theme did not ship a blurry 16×16 variant. Rather than screenshotting the browser chrome—which introduces JPEG artifacts and wrong colors—unpack the actual favicon.ico and export the precise frames the author embedded.
Icon repurposing spans marketing and engineering. A desktop app might ship a single ICO for shortcuts; marketing wants that same glyph for a blog post or changelog hero image. PNG export produces a file you can place in CMS media libraries, run through the PNG Compressor, or convert to WebP for faster delivery. Design documentation benefits when you archive “what we shipped” as layered or labeled PNGs per size, especially when auditing accessibility contrast at small scales.
App asset conversion pipelines sometimes receive ICO from Windows-centric partners while iOS and Android expect PNG or PDF masters. Extracting to PNG lets you hand assets to mobile tooling, adaptive icon templates, or our App Icon Generator without forcing designers to redraw identical shapes. Internal IT and support teams occasionally need to inspect shortcut icons for phishing awareness training—unpacking to PNG makes zooming and annotation in slide decks trivial compared to pixel-peeping inside a compound container.
Educational contexts—bootcamps, documentation sites, open-source readme illustrations—also benefit. Students learn that ICO is a container, not a codec, once they see multiple resolutions side by side. When combined with SynthQuery's PNG to ICO or JPG to ICO tools, the round trip demonstrates how favicon authoring practices evolved from single-bitmask images to PNG-in-ICO hybrids. Throughout, keeping processing local means classrooms and corporate labs behind strict firewalls can still complete the exercise.
How SynthQuery compares
You can unpack icons with desktop suites, command-line imagers, or hosted converters. Each approach differs in privacy, batch ergonomics, and how explicitly multi-resolution ICOs are surfaced. SynthQuery optimizes for browser-local processing with clear controls for single-size versus all-sizes export, which reduces surprises when a seemingly simple favicon actually contains a dozen embedded frames. The comparison below highlights trade-offs—not to dismiss other tools, but to help you choose when local batch extraction matters most.
Aspect
SynthQuery
Typical alternatives
Privacy & data flow
ICO bytes are parsed and PNGs are built in your browser tab; files are not uploaded for conversion.
Many web utilities POST files to a server; desktop apps stay local but require installation and updates.
Multi-resolution awareness
Directory entries are listed per file; choose one size or export every embedded resolution with predictable naming.
Some viewers export only the largest frame silently; CLI tools expose sizes but demand script familiarity.
Transparency fidelity
PNG-in-ICO payloads pass through unchanged; DIB paths decode to RGBA before PNG export.
Low-cost converters may flatten alpha or convert through lossy JPEG steps without warning.
Setup & access
No install; works anywhere modern Canvas and typed arrays are available.
ImageMagick and similar suites are powerful but require binaries; enterprise laptops may block them.
How to use this tool effectively
Begin by gathering the .ico files you need. These might live beside an executable, inside a design handoff ZIP, or at the root of a website as favicon.ico. Check file sizes first: this page accepts up to twenty icons at ten megabytes each, which is generous for normal UI artwork but still protects mobile browsers from accidentally loading enormous archives masquerading as icons. If you are unsure whether a download is truly an ICO, rely on the extension and MIME type; the parser validates the header and will surface a readable error instead of producing garbage bytes.
Drag your files onto the dashed upload region or press Enter or Space while the region is focused to open the system file dialog—an accessibility pattern shared across SynthQuery free tools. Each accepted file appears in the queue with a thumbnail when the browser can preview the ICO, plus a count of embedded sizes discovered during parsing. If an icon contains multiple resolutions, decide whether you need every frame or only one. Turn on **Extract all embedded sizes** when you want separate PNG files for each directory entry—ideal for rebuilding a favicon set, comparing how an asset was authored at 16×16 versus 128×128, or handing individual PNGs to a developer who will repack them later. Leave the switch off when you only need a single output per ICO; the tool defaults to the largest embedded square, which is usually the best candidate for slides or social crops.
When extraction is off and multiple sizes exist, use the per-row dropdown to pick a specific width-by-height pair. Labels call out the largest entry so you can align with common defaults without mental arithmetic. After options look correct, press **Convert to PNG**. Rows enter a converting state with a numeric progress indicator driven by how many embedded images are processed. Successful runs show a small PNG preview on a checkerboard-friendly background so semi-transparent edges are obvious before you download. Use **Download** on a row for that icon's outputs—if several PNGs were generated, the browser receives a ZIP folder named after the source stem—or use **Download all as ZIP** to gather every successful conversion from the whole queue. **Clear queue** resets state and revokes object URLs to avoid memory leaks during long sessions. **Re-run all** repeats conversion with your latest toggle settings, which matters when you first extracted only the largest size and later decide you need the full multi-resolution breakdown for documentation.
Resize extracted PNGs to custom dimensions when a downstream spec does not match embedded ICO sizes.
Frequently asked questions
Yes, when the embedded data includes alpha or mask information. PNG payloads inside the ICO are copied byte-for-byte into your download, so their alpha channels remain intact. Legacy DIB entries decode through RGBA paths that respect 32-bit alpha and monochrome AND masks where present. If a source icon was authored fully opaque—common for simple flat glyphs—your PNG will likewise be opaque. Flattening only occurs if you later convert the PNG to JPEG or another format without alpha support.
Icons are resolution-dependent: a 16×16 taskbar slot needs different pixel data than a 256×256 high-DPI shortcut. Packing every variant into one .ico file lets Windows, browsers, or installers choose the best match without additional HTTP requests or resource forks. When you extract all sizes, you can inspect or replace individual frames, which is valuable for debugging blurry tabs or inconsistent branding across DPI settings.
Toggle **Extract all embedded sizes** when you need every frame as its own PNG—documentation, QA, or rebuilding an icon set. Leave it off when you only want one output per ICO and pick a resolution from the dropdown; the tool defaults to the largest entry, which is usually the best for presentations or marketing crops. You can re-run conversion after changing the toggle without re-uploading files.
For PNG-in-ICO images there is no recompression: the tool writes the same compressed scanlines to disk. For DIB-based images, pixels decode to RGBA and encode once as PNG at maximum quality via Canvas, which is visually lossless relative to the decoded samples. Generational loss appears only if you later edit and repeatedly re-save through lossy workflows; keep intermediate work in PNG or a native editor format.
No. The parser explicitly rejects type-two CUR files because they include hotspot metadata and different semantics. Rename mislabeled files or convert cursors with a dedicated cursor editor. If you believe a file was misnamed, fix the extension or re-export from the source application as a true ICO.
The DIB path supports uncompressed BI_RGB payloads at 32, 24, and 8 bits per pixel. Compressed BMP-in-ICO variants trigger an explicit unsupported error. Re-save the icon from a current design tool using standard PNG-in-ICO for large sizes and 32-bit DIB for smaller squares, then try again.
Screenshots capture blended UI chrome, often introduce JPEG noise if saved incorrectly, and rarely match exact pixel dimensions. Extracting from ICO gives you the authored frame, with correct alpha and sharp edges, which matters for design reviews and brand compliance checks.
Yes, queue up to twenty files. Each row converts independently with its own error handling, and **Download all as ZIP** nests outputs under folders named from each source stem to avoid filename collisions when multiple icons share the same embedded dimensions.
No. Parsing, rasterization, and ZIP creation run locally with JavaScript, Canvas, and optional JSZip dynamic imports. Network activity is limited to loading the site assets themselves—HTML, scripts, styles—like any web page. Your ICO contents are not transmitted to SynthQuery for conversion.
Extract PNG here first to preserve transparency decisions, then open SynthQuery's PNG to JPG Converter if you truly need opaque JPEGs for a legacy channel. That two-step flow keeps you intentional about where alpha is discarded, rather than surprising you with flat backgrounds you did not choose.