PNG to ICO: Check Transparency and Pixels Before You Download
To convert PNG to ICO with several sizes in one small download, start with PNGConvert; for an unchanged 256×256 pixel image in a single-size ICO, start with Online-Convert, based only on this test.
Neither choice is a universal winner: the smaller file changed a color-channel value, while the single-size file did not supply smaller icon images.
One transparent PNG, ten tool attempts
Test date: November 1, 2026.
Every attempt used the same 790-byte, 256×256 PNG, with a transparent background, an opaque blue square and a center square whose RGBA value was (225,70,45,128).
No image or size settings were changed after selecting the input.
PNGConvert initially selected 16, 32, 48 and 256; ConvertICO selected its six-size Recommended preset; ImageResizer displayed Favicon for websites, while FreeConvert displayed its Windows preset before upload.
The measurements below come from saved downloads: file length, complete SHA-256, the ICO directory and decoded RGBA pixels.
A completed preview without a saved file did not count as success.
Swipe the table horizontally on a narrow screen. Checksums are complete.
| Tool / entry URL | Login in this run | Downloaded ICO images | ICO bytes | Complete SHA-256 | Observed result |
|---|---|---|---|---|---|
| CloudConvert https://cloudconvert.com/png-to-ico | Not requested before failure | Not measured | Not measured | Not measured | Daily conversion credits exceeded; no file |
| FreeConvert https://www.freeconvert.com/png-to-ico | Not required in this run | 16×16, 24×24, 32×32, 48×48, 64×64, 72×72, 96×96, 128×128, 256×256 | 432254 | d7ef704638b5385d1acb6120dfe7c5fd31f16122473e1d2848c118976de45f94 | Terms accepted with specific authorization; file obtained via actual Download link |
| Convertio https://convertio.co/png-ico/ | Not reached | Not measured | Not measured | Not measured | File chooser did not open; no file |
| PNGConvert https://pngconvert.net/ | Not required in this run | 256×256, 48×48, 32×32, 16×16 | 3148 | 7fcd13b0fe0097ca6438266cfa8ab5f2f0b3d47d1ebb7c336cccec798cc001df | File obtained |
| ImageResizer https://imageresizer.com/png-to-ico | Not required in this run | 16×16, 24×24, 32×32, 48×48, 64×64, 72×72, 96×96, 128×128, 256×256 | 432254 | d7ef704638b5385d1acb6120dfe7c5fd31f16122473e1d2848c118976de45f94 | File obtained; initial Favicon preset shown |
| ConvertICO https://convertico.com/ | Not required in this run | 16×16, 32×32, 48×48, 64×64, 128×128, 256×256 | 101124 | 08b0d7993ef814a7d3c0b23fb484258e724296c0f11476db1e2a4d71fc0a3fd2 | File obtained; Recommended preset |
| Online-Convert https://image.online-convert.com/convert/png-to-ico | Not required in this run | 256×256 | 270398 | 7990dd9a81b297a67e5b493bbc6a42a2603883e5a696a22edfbdc28050f7f827 | File obtained |
| Imagen https://imagen-ai.com/tools/png-to-ico-converter/ | Not reached | Not measured | Not measured | Not measured | Photographer eligibility gate; no file |
| Duplichecker https://www.duplichecker.com/png-to-ico.php | Not requested before failure | Not measured | Not measured | Not measured | No saved file or download result captured |
| Favicon.io https://favicon.io/favicon-converter/ | Not required in this run | 16×16, 32×32, 48×48 | 15406 | fabfebf9265fc074a75a2d8dd5c2056be161a1d684f78be17ce7a07950e26c12 | ZIP downloaded; ICO inspected separately |
Does keeping transparency mean every pixel stays identical?
PNGConvert returned 3,148 bytes with four directory entries: 16×16, 32×32, 48×48 and 256×256, all carrying PNG payloads.
Its decoded 256×256 center was (225,70,46,128), against the input value (225,70,45,128): the blue channel increased by one while the alpha value remained 128.
ConvertICO returned 101,124 bytes with six entries: 16×16, 32×32, 48×48, 64×64, 128×128 and 256×256; the first five had bitmap payloads and the last had a PNG payload.
At 256×256, ConvertICO and PNGConvert had identical decoded RGBA hashes, despite different file lengths and different packaging.
That comparison concerns this image; it does not prove a shared implementation.
Which outputs matched the original pixel array?
Online-Convert returned one 256×256 bitmap entry in a 270,398-byte ICO, and its complete decoded RGBA array matched the input.
ImageResizer returned 432,254 bytes and nine bitmap entries at 16, 24, 32, 48, 64, 72, 96, 128 and 256 pixels; its 256×256 RGBA array also matched the input.
FreeConvert produced a separate 432,254-byte download with exactly the same bytes and complete SHA-256 as the ImageResizer download.
Why those two exports were identical was not investigated.
Favicon.io supplied a 28,364-byte ZIP containing seven files; its extracted ICO was 15,406 bytes and contained only 16×16, 32×32 and 48×48 images.
The three ICO images from Favicon.io each retained center alpha 128, with center RGBA (225,70,46,128).
The larger standalone PNGs inside that ZIP are not additional images inside its ICO.
Can a transparent pixel contain nonzero RGB values?
Every decoded image in the six obtained ICOs had alpha 0 at its top-left corner and alpha 128 at its center.
ImageResizer and FreeConvert stored (24,116,184,0) at the 16×16 top-left pixel, while the other obtained ICOs stored (0,0,0,0) there.
A fully transparent pixel can carry RGB values, so that difference alone is not evidence of a visible blue border.
This check did not test Windows icon rendering, every edge pixel, every color profile, batch limits, speed or the absolute maximum free size.
File length is not a visual-quality score, and retaining alpha does not establish byte-for-byte or pixel-for-pixel identity.
Where four attempts stopped
CloudConvert rejected conversion with Conversion credits exceeded and a daily-limit message; no ICO was obtained.
Convertio did not open a file chooser through its visible upload label, and a second attempt through its hidden file input failed.
Imagen kept its photographer-only eligibility question visible after No, I’m not was selected; no file was obtained.
Duplichecker accepted the PNG selection, but its entry disappeared after conversion without a captured file or a download control.
These are unsuccessful attempts in this browser session, not proof that those services cannot convert PNG.
How to reproduce the comparison
Download the exact input and the raw measurement report below, open a listed tool, leave its initial settings unchanged, select the PNG and save its generated ICO.
For a ZIP, inspect the ICO separately from the other images in the archive.
Read the ICO directory before selecting a decoded image, then compare the 256×256 RGBA bytes with the original PNG only when that ICO size exists.
The local file analyzer used Python 3.12.14 and Pillow 13.0.0; its output is not a browser-compatibility test.
The measured differences in four diagrams



