pngtoicotool
PNG to ICO converter output check

PNG to ICO converter output check

PNG to ICO Converter: Check the Smallest Layer Before Calling It Blurry

Open the downloaded ICO and list the sizes actually inside it. If the small layer you need is absent, fix the export; if it exists but has zero pixels with alpha above 0, the layer is invisible; if visible pixels exist, judge its shape at native size before calling it blurry. A size selected in a PNG to ICO converter is not proof that the saved file contains that size.

Convert a PNG to ICO

In our Windows/Pillow 12.3.0 rerun, all four PNGs requested 16, 32, 48, and 256 pixels. The square source wrote all four; the narrow source wrote 6×16, 12×32, and 18×48 instead of square entries; the 24×24 source wrote only 16×16; the fully transparent source wrote all four but its smallest layer had 0 visible pixels. These outcomes belong to this encoder and these synthetic inputs, not to every converter.

Here, a 'visible pixel' means decoded alpha > 0: not fully transparent. This count answers whether the layer can contain visible artwork, not whether the artwork is crisp. A browser, display scale, or Windows view may choose or scale a different size; check the exact destination after inspecting the file.

Four sources, one request, four different checks

We made four synthetic RGBA PNGs and requested the same 16/32/48/256 square size set from Pillow 12.3.0 on Windows on 26 September 2026. The square 320×320 badge wrote four square entries. The 120×320 narrow badge wrote three non-square entries: 6×16, 12×32, and 18×48. The 24×24 badge wrote only 16×16. The entirely transparent 320×320 source wrote four entries, just like the square badge. The table below reports the raw ICO directory, byte count, and decoded smallest-layer alpha count for each file.

The two 320×320 outputs show why layer count alone is insufficient: one smallest layer had 192 of 256 pixels with alpha above zero; the transparent one had 0 of 256. The 24×24 case shows a different failure: its 16×16 image exists but the 32, 48, and 256 layers requested were absent. The narrow case has a smallest image of 6×16, not a 16×16 square. Those are distinct diagnoses even before looking at visual quality.

Absent, invisible, or actually soft?

First ask whether the exact dimensions you need occur in the saved directory. If not, call it a missing-layer or wrong-dimensions issue. Next decode the matching entry and inspect alpha. A zero count of alpha > 0 pixels means the layer is fully transparent; it is present but invisible. A positive count does not rule out a pale edge, low contrast, a shape that collapses at 16 pixels, or a background-colored icon. Those require an actual visual check.

For our separate 16-pixel design sample, a detailed 256-pixel badge was reduced to 16 pixels and compared with a deliberately simplified 16-pixel drawing. At native size, the redrawn badge leaves a clearer central opening. That is an inspectable design example, not a reader study or a conversion benchmark. Microsoft icon guidance likewise calls for preserving the key visual idea at small sizes rather than merely shrinking a large drawing.

Use byte counts as evidence, not a quality grade

The fully transparent ICO in this run was 651 bytes and contained four entries. The 24×24 source produced a 457-byte ICO with one entry. The narrow source produced a 1,462-byte ICO with three non-square entries. File size tells you how large this particular output is, but these examples show that a small byte count by itself cannot establish completeness or visibility. Inspect the directory and decoded image instead.

Pillow documents that requested ICO sizes larger than the source can be ignored. That fits our 24×24 observation, but the exact bytes and narrow-source dimensions are our measured results for this version and artwork. Another PNG to ICO converter might pad, crop, resize, reject, or encode the same source differently. If you need a square small layer, prepare a square canvas or use a tool with explicit padding controls, then inspect the output rather than assuming the adjustment worked.

Check the surface, not only the file

For a Windows application icon, Microsoft's design guide lists 16, 32, 48, and 256 pixels in the full set, while its icon-size documentation explains that small system metrics can scale with display DPI. For web pages, MDN notes that browsers can choose among icon links using media, type, and sizes information. That is why this article uses 16×16 as a concrete small-layer audit, not as a universal claim about every tab or desktop display.

Keep the original PNG, final ICO, and the destination screenshot together when diagnosing a real project. If the file contains the needed visible layer but only one destination looks soft, record that environment and check which image it actually displays before blaming the converter. If you cannot determine that selection, mark it unknown.

Local rerun: smallest saved image

Windows, Pillow 12.3.0, 26 September 2026. All four sources requested square 16, 32, 48, and 256 pixel entries. Alpha > 0 counts pixels that are not fully transparent in the decoded smallest entry.

Source PNG (bytes)Actual ICO layers (px)ICO bytesSmallestAlpha > 0 pixels
Square art 320×320 (1,401)16×16 / 32×32 / 48×48 / 256×2566,83416×16192 / 256
Narrow art 120×320 (989)6×16 / 12×32 / 18×481,4626×1696 / 96
Tiny art 24×24 (168)16×1645716×16196 / 256
Fully transparent 320×320 (477)16×16 / 32×32 / 48×48 / 256×25665116×160 / 256

Every written entry in this rerun was PNG-encoded inside the ICO. The CSV also records the separate alpha < 255 count, which is not the same as the alpha > 0 visibility count. Re-run the script if the encoder version or environment changes. These are not measurements of this website's converter.

Four sources asked for the same ICO sizes but produced different actual layer lists in Pillow 12.3.0
The ICO directory, rather than the request list, tells you which dimensions were written.
Count of smallest-layer pixels whose alpha is greater than zero for four synthetic ICO files
A written layer may be entirely transparent; alpha > 0 is a visibility check, not a blur score.
A 16-pixel icon compared at native size and enlarged for pixel diagnosis
When a visible layer looks soft, judge it at native size and use zoom only to diagnose pixels.

Check the smallest saved layer in four moves

  1. 01
    List the saved dimensions

    Open the downloaded ICO in a tool that lists every embedded image, or run the downloadable script's directory parser. Write down exact width × height pairs. For a 16×16 target, an entry such as 6×16 is not the same size, even if it is the smallest entry.

  2. 02
    Decode the layer you will use

    If the required entry exists, decode that entry and count pixels with alpha > 0. Zero means every pixel is fully transparent in that decoded image. A positive count only tells you that some pixels could show; it does not certify legibility.

  3. 03
    Inspect appearance at native size

    View the decoded small image against light and dark fills at its actual dimensions. If the defining shape merges or fine lines crowd it, simplify the small artwork. Enlarge the image to diagnose which pixels merged, then return to native size for the decision.

  4. 04
    Rebuild and check the destination

    If the entry was missing, revise the source size, canvas shape, or encoder settings and inspect the new ICO. If the entry was present but weak, revise the drawing. Finally check the icon in the browser, bookmark surface, or Windows view where it will appear.

FAQ

Small-layer questions

Is a missing 16×16 entry the same as a blurry 16×16 entry?

No. A missing entry has no 16×16 image to inspect. A blurry entry exists and has to be decoded and viewed at native size. The narrow source in our lab wrote 6×16, not 16×16, despite the square-size request.

Can an ICO contain a 16×16 layer that shows nothing?

Yes. Our fully transparent 320×320 PNG produced a 16×16 ICO entry with 0 of 256 decoded pixels having alpha above zero. Its directory was complete for the requested sizes, but the small image was invisible.

Does an alpha > 0 count prove the icon is sharp?

No. It only says some decoded pixels are not fully transparent. Inspect shape, contrast, and edges at native size on the relevant backgrounds.

Will every converter write the same layers as this table?

No. The numbers come from Pillow 12.3.0 on Windows with four synthetic files. Inspect the output of the converter and settings you actually use.