A Windows ICO file is rarely “one image.” It is a small archive: a directory header followed by multiple embedded bitmaps—often sixteen, thirty-two, forty-eight, sixty-four, one-twenty-eight, and two-fifty-six pixel squares—so operating systems, browser chrome, and desktop shells can pick the frame that best matches the current display density without blurry upscaling. Designers inherit those bundles from legacy sites, Electron apps, downloaded favicon packs, or brand kits, yet marketing channels, slide decks, CMS thumbnails, and email templates usually expect a plain JPEG. SynthQuery’s ICO to JPG Converter closes that gap locally in your browser. You drop one or many .ico files, the page parses the ICONDIR structure, decodes each embedded PNG (Vista-style) or legacy BMP/DIB payload at supported bit depths, renders previews on a neutral checkerboard so transparency is obvious, and lets you tick exactly which resolutions to flatten into JPEG—or select everything for a full extraction pass. Batch conversion respects up to ten icons per session with a fifteen-megabyte ceiling per file, which keeps memory predictable on laptops while still swallowing chunky favicon bundles. JPEG export includes an adjustable quality control and a matte color because the JPEG codec has no alpha channel: translucent favicon pixels must composite onto white, black, or a brand hex value before encode. Nothing in that decode-or-encode loop uploads to SynthQuery; only ordinary web assets load over the network, mirroring how other SynthQuery image utilities treat confidential UI captures. When your project also ships AI-assisted copy, continue to the AI Detector and Humanizer, browse the free-tools hub for adjacent converters, and explore the full catalog at https://synthquery.com/tools.
What this tool does
Multi-resolution awareness is the heart of the workflow. Unlike flattening a single raster upload, ICO parsing must respect the container: directory-declared dimensions, embedded PNG natural sizes, and DIB headers that store double-height bitmaps (XOR plus AND mask regions) all participate in reconstruction. SynthQuery decodes PNG-in-ICO frames with the browser’s built-in PNG codec via createImageBitmap, which preserves color profiles as far as the underlying engine allows, and unpacks BMP-style payloads with explicit handling for thirty-two-bit BGRA, twenty-four-bit BGR, and eight-bit palettized icons, including legacy AND masks that force key pixels transparent when the mask bit is set. Previews intentionally use lossless PNG blobs at preview time so you judge edges before lossy export; the final JPEG stage is separate, preventing double JPEG artifacts during inspection. Batch mode queues multiple ICO files with isolated error handling: a corrupt second file does not erase successful previews from the first. Loading states split ingestion (reading files, parsing directories, building thumbnails) from conversion (per-frame JPEG encoding with a numeric progress percentage), which clarifies whether the tab is still decoding or already compressing. Mobile layouts stack the options card above the drop zone, keep touch targets at least forty-four CSS pixels tall on buttons, and allow the preview grid to reflow into two or three columns instead of forcing horizontal scroll. Accessibility follows SynthQuery patterns: the drop zone is keyboard activatable, checkboxes pair with labels, previews expose width-by-height alt text, and destructive actions like Clear use icon buttons with aria-labels. Core Web Vitals stay in mind by deferring JSZip until you request ZIP export and by avoiding eager conversion on page load—work begins only after explicit user intent.
Technical details
ICO files begin with an ICONDIR structure: a reserved zero word, a type word (one for icons, two for cursors—this tool rejects cursors intentionally), and a count of embedded images. Each ICONDIRENTRY stores nominal width and height with a sentinel zero representing two-fifty-six pixels, color-plane and bit-count hints, the byte length of the image resource, and the offset from the start of the file to the payload. Payloads are either PNG streams, recognizable by their eight-byte signature, or DIB bitmaps without a BITMAPFILEHEADER. DIB height values encode both the color bitmap and the monochrome AND mask; SynthQuery halves the declared height to recover the visible icon, reads XOR rows bottom-up according to BMP conventions, and optionally applies the AND mask so legacy one-bit transparency still behaves predictably on modern compositors. JPEG output applies the discrete cosine transform across eight-by-eight blocks, which means crisp one-pixel favicon edges may show mild ringing when quality is low; raising the quality slider reduces those artifacts at the cost of bytes. Because JPEG cannot store alpha, the matte color is not metadata—it becomes literal pixel data, so mismatched backgrounds in downstream layouts may reveal halos if the matte disagrees with the final page color.
Use cases
Web developers often download a site’s favicon.ico to document competitor UI or to recover a lost brand asset from production; extracting the largest embedded JPEG-ready frame yields a slide-quality logo without tracing vectors. IT teams packaging internal portals convert legacy shortcut icons into JPEG attachments for ticketing systems that reject binary icon containers. Graphic designers who receive Windows-only ICO exports from clients can pull individual sizes into mood boards, style guides, or Figma references—JPEG keeps file sizes predictable when PNG transparency is unnecessary. Technical writers illustrating “before and after” favicon updates embed flattened JPEG screenshots beside HTML samples, sidestepping email clients that mishandle ICO attachments. Marketers repurposing partner-provided icon kits for social ads frequently need a single high-resolution square; selecting only the two-fifty-six slot avoids shipping redundant tiny frames. QA engineers verifying multi-size favicons across breakpoints batch-convert every frame to JPEG for visual diff tooling that expects photographic formats. Educators teaching file formats can demonstrate container versus codec differences by inspecting previews live. Whenever those JPEGs accompany AI-generated blog posts or release notes, run SynthQuery’s AI Content Detector on the text so imagery and copy compliance stay aligned.
How SynthQuery compares
Desktop icon editors and full creative suites—think Visual Studio resource editors, GIMP, Affinity Designer, or Adobe Photoshop with plugins—offer pixel-level ICO authoring, layer stacks, and export presets tied to Windows or macOS packaging workflows. They remain the right choice when you must edit hot spots for cursors, hand-tune 8-bit palettes, or ship curated multi-OS bundles. SynthQuery targets a narrower but frequent scenario: you already have ICO bytes, you need shareable JPEGs quickly, and you want the decode path to stay on-device without installing codecs or uploading to an anonymous “free converter” site whose terms may not suit confidential branding. The comparison below highlights those trade-offs honestly; pick the workflow that matches IT policy, fidelity requirements, and how much editing you still owe the asset.
Aspect
SynthQuery
Typical alternatives
Privacy posture
ICO parsing, preview generation, and JPEG encoding execute in your browser tab; raster payloads are not sent to SynthQuery for conversion.
Many hosted converters upload files to shared infrastructure—read privacy policies before using them on proprietary artwork.
Multi-size handling
Lists every embedded frame with previews, checkboxes, and per-file select-all shortcuts.
Some utilities silently export only the largest frame or require manual extraction per size.
Installation
Runs wherever a modern browser runs—helpful on locked-down corporate laptops.
Desktop editors offer deeper tooling but may need IT approval, licenses, or plugin maintenance.
Editing depth
Conversion-focused: no pencil tools, vector imports, or ICO re-authoring on this page.
Creative suites provide full editing but with heavier UX and file-management overhead.
Batch packaging
ZIP export via JSZip bundles every successful JPEG without server-side archiving.
Scripted desktop batch tools may scale higher but require setup and maintenance.
How to use this tool effectively
Start with ICO files you are allowed to process—some enterprise icon packs carry redistribution limits even when conversion is technically trivial. In the options column, set JPEG quality first: the slider spans sixty through one hundred, defaulting in the low nineties where photographic noise stays controlled and file size remains email-friendly. Choose a background color with the native color input; this matte sits behind every partially transparent pixel before JPEG quantization, so pick pure white for documents, near-black for dark-mode mockups, or a precise brand value when the JPEG will sit on a known backdrop. Next, use Choose ICO files or drag icons onto the dashed hero region; accepted inputs include the common .ico extension plus image/x-icon and image/vnd.microsoft.icon MIME labels when operating systems report them accurately. Each enqueue reads the file into an ArrayBuffer, validates reserved fields and type one icon semantics, walks every sixteen-byte ICONDIRENTRY, and attempts to decode frames in directory order. Successful frames show a PNG preview thumbnail, width-by-height labels, and a checkbox defaulting to selected; frames that use exotic compression or unsupported bit depths surface an inline error without blocking siblings in the same container. Use Select all sizes or Deselect all in the global toolbar when you want a consistent policy across the whole queue, or the per-file All / None buttons when only one favicon needs a subset such as the largest master for a keynote slide. Press Convert to JPG: the tool revisits only checked frames, rasterizes through the same decode path used for previews, composites transparency onto your matte inside a canvas, and calls toBlob with image/jpeg. Download individual JPEGs from each completed row’s table, or Download all as ZIP when multiple icons produced many outputs—JSZip assembles the archive entirely in-tab, deduplicating filenames with numeric suffixes if two jobs collide. If you change quality or matte after a successful run, click Convert again; the queue reruns every non-converting job so iterations stay fast without re-uploading sources.
Limitations and best practices
Cursor files (.cur), malformed ICONDIR tables, ICO resources with compressed BMP payloads, or bit depths outside supported PNG, thirty-two, twenty-four, and eight bits may fail with explicit row-level errors—re-export from a desktop tool in those cases. Extremely large embedded PNGs can still exhaust mobile RAM; keep batches modest on phones. JPEG generation always flattens transparency; if you need lossless alpha, export PNG from a workflow that preserves it (for example, decode via a lossless path in other utilities) rather than forcing JPEG. Filename collisions inside ZIP archives automatically gain numeric suffixes, yet you should still verify outputs when multiple queue rows used identical original filenames. SynthQuery does not audit trademark, copyright, or software licenses for the icons you convert; confirm rights before redistributing extracted artwork.
Explore AI detection, readability, plagiarism checks, humanization, and the complete marketing catalog.
Frequently asked questions
ICO is Microsoft’s icon container format. It stores one or more images—often at different pixel sizes—so Windows, browsers, or toolbars can pick the best match for a given context. Modern ICO files frequently embed PNG-compressed frames for larger sizes and BMP-style DIB data for smaller legacy frames. SynthQuery reads the directory, decodes supported frames, and exports your selection as JPEG.
JPEG excels at compact file sizes for photographic or anti-aliased artwork and is universally accepted in email, slide decks, and CMS uploads that reject exotic containers. PNG remains better when you must preserve alpha or razor-sharp two-color UI glyphs. This page targets JPEG explicitly; choose another workflow when lossless transparency is mandatory.
Yes. All checkboxes default to selected after a successful decode, and the global Select all sizes control enforces that policy across the queue. Deselect individual frames if you only need, for example, the 256×256 master. Convert to JPG processes every checked frame and names outputs with the original basename plus width-by-height suffixes.
JPEG cannot store an alpha channel. Before encoding, the tool composites each decoded frame onto the solid background color you pick—default white—so semi-transparent edges blend predictably. Previews remain on a checkerboard pattern so you can see through pixels before flattening. If the matte color disagrees with the page where the JPEG will appear, adjust it and rerun conversion.
No. FileReader pulls bytes into memory, JavaScript parses the ICO structure, canvas (and createImageBitmap) handles rasterization, and JSZip—only when you request it—builds archives locally. Network traffic is limited to loading the SynthQuery web application itself, consistent with other client-side converters in this repository.
Each frame decodes independently. A failure—unsupported bit depth, truncated payload, or corrupted PNG chunk—surfaces as an error message on that tile while siblings continue to preview. If every frame in a file fails, the enqueue is skipped with a toast so you know to repair the source in a desktop editor.
Yes. Even 16×16 icons pass through JPEG quantization, which can soften single-pixel highlights. For tiny sizes, keep quality at ninety or above unless you explicitly need smaller bytes. When artifacts appear, raise quality or consider a PNG-oriented workflow for that asset.
You may queue up to ten ICO files per session, each up to fifteen megabytes. Every file shows its own preview grid and controls. Download all as ZIP gathers JPEGs from every successful job, adding numeric suffixes if filenames collide.
Files that are actually cursors use type two headers and are rejected with a clear message. ICO variants with exotic BMP compression, corrupted directories, or bit depths this parser does not implement yet will also error. Re-saving the icon from a resource editor or exporting PNG masters before re-packing usually resolves the issue.
The Favicon Generator creates multi-size PNG sets, ICO bundles, and HTML snippets from a single master image—ideal when you are shipping a new site. This ICO to JPG page solves the inverse problem: you already possess ICO bytes and need flattened JPEGs for documentation, email, or downstream tools that refuse icon containers.