PNG to ICO file check
PNG to ICO: Verify the File Before You Ship It
Convert the PNG, then check the ICO itself: confirm its actual image sizes and inspect transparency in the small layer you will use. A selected size is only a request until you verify that the downloaded file contains it.
Convert a PNG to ICOIn our four-file lab on 25 September 2026, a 24 × 24 PNG produced only a 16-pixel ICO layer even though we requested 16, 32, 48, and 256. The larger sources produced all four. If a layer is missing, return to a larger source or use an encoder that can create that layer, then inspect the new file again.
These are measurements from Pillow 12.3.0 on this Windows machine, not a claim about every converter or about the converter on this site. The input PNGs, ICO outputs, CSV, and reproduction script are available below.
Requested sizes versus sizes actually written
Our reproducible sample set requested 16, 32, 48, and 256 pixels for every ICO. The three sources with a 320- or 480-pixel square canvas contained all four entries. The 24-pixel source contained just a 16-pixel entry. Pillow documents that it ignores requested sizes larger than the source, so this is a measured behavior of that encoder, not a universal rule for PNG to ICO tools.
The tiny output was 454 bytes. Its small file size did not mean it was a better icon: the 32-, 48-, and 256-pixel layers were absent. Check the directory rather than treating the download button or final byte count as a completeness check.
What the transparency counts actually say
At 16 pixels, our transparent square ICO had 216 pixels whose alpha was below 255; the opaque white square had zero. Both files contained four PNG-encoded ICO entries. A PNG input can therefore create an ICO with a white box when the white pixels were already part of the artwork. This experiment counts pixels in the decoded output, rather than trusting the filename or thumbnail.
The counts do not rate visual quality. A partly transparent edge may still look pale on a dark tab. Use the count to locate whether transparency exists, then look at the actual icon at its intended display size.
Keep a wide logo from being stretched
For our 480 × 240 source, we placed the artwork at vertical offset 120 on a 480 × 480 transparent canvas before conversion. The resulting 5,243-byte ICO held all four requested sizes; 232 of its 256 pixels in the 16-pixel layer were not fully opaque. The downloadable original, padded PNG, and ICO let you inspect the effect directly.
That much clear space makes the wide artwork small at favicon scale. If the 16-pixel result is hard to read, use a separate square symbol instead of merely asking the converter for a larger ICO layer.
Separate a tool's upload rule from the ICO format
An archived Faviconit form from December 2022 asked for an image of at least 310 × 310 pixels and no more than 1 MB. A 2018 iConvert Icons page instead emphasized quick web upload and directed people needing more settings to its desktop app. Those are historical product choices, not ICO format limits or current policies. Do not reject a source solely because another site once used those thresholds.
For this task, keep three questions separate: can this tool accept the source, did it write the sizes your destination needs, and do those layers look right? Our CSV answers the latter two for the four lab files; your own destination still determines what must be shipped.
Four-file lab: measured outputs
Generated on Windows with Pillow 12.3.0 on 25 September 2026. Every row requested 16, 32, 48, and 256 pixels. 'Nonopaque' means alpha below 255 in the decoded 16-pixel layer; it includes partial and full transparency.
| Source PNG | Actual ICO layers (px) | ICO bytes | Nonopaque pixels at 16 px |
|---|---|---|---|
| 320 × 320 transparent square | 16 / 32 / 48 / 256 | 7,284 | 216 / 256 |
| 320 × 320 opaque white square | 16 / 32 / 48 / 256 | 7,439 | 0 / 256 |
| 24 × 24 transparent square | 16 only | 454 | 192 / 256 |
| 480 × 240 wide art, padded to 480 × 480 | 16 / 32 / 48 / 256 | 5,243 | 232 / 256 |
All written entries in this lab are PNG-encoded inside the ICO. The 256-pixel transparency counts and source PNG byte sizes are in the CSV. Run the script with Pillow 12.3.0 to reproduce the measured files; other versions or encoders may produce different bytes.
Check your own PNG to ICO output
- 01Record the source
Write down the PNG width, height, file size, and whether its pixels are opaque or transparent. Keep a copy of the source so that a failed icon can be traced back to its artwork.
- 02Convert and inspect the directory
Choose the sizes your destination needs. After downloading, open the ICO in a viewer that lists every embedded image, or inspect its directory entries. Compare actual sizes with the sizes you selected; the two lists can differ.
- 03Check a small layer on two backgrounds
Inspect the 16-pixel image, then a larger layer, against light and dark fills. Check both the corners and the edge of the symbol. If your application requires a legacy bitmap-style ICO entry, check that encoding separately; a valid PNG-encoded entry is not proof that an older consumer can read it.
FAQ
PNG to ICO audit questions
Does selecting 256 pixels guarantee a 256-pixel ICO image?
No. Inspect the saved ICO. In this Pillow 12.3.0 experiment, the 24-pixel input yielded only a 16-pixel layer despite a request that included 256; a different converter may behave differently.
Does an ICO filename prove that transparency survived?
No. Decode the layer and inspect its alpha and appearance. In our lab, the transparent and white-backed PNGs both produced valid multi-image ICO files, but only the transparent source produced nonopaque pixels.
Is the old 310-pixel Faviconit minimum an ICO requirement?
No. It was an upload rule on that site's archived 2022 form. Check the limits of the converter you actually use and the size requirements of your destination.