pngtoicotool
PNG to ICO file check

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 ICO

In 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 PNGActual ICO layers (px)ICO bytesNonopaque pixels at 16 px
320 × 320 transparent square16 / 32 / 48 / 2567,284216 / 256
320 × 320 opaque white square16 / 32 / 48 / 2567,4390 / 256
24 × 24 transparent square16 only454192 / 256
480 × 240 wide art, padded to 480 × 48016 / 32 / 48 / 2565,243232 / 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

  1. 01
    Record 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.

  2. 02
    Convert 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.

  3. 03
    Check 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.