Why Does My Base64 Icon Show the Wrong Size?
In deliberately constructed abnormal ICO controls, swapping the directory size labels reduced the default reader's reported available sizes from 16x16 and 32x32 to 16x16, while both embedded images remained in the file. Reversing the directory-entry order did not change either result.
Controlled comparison
The check was run on 2026-10-29 with Python 3.12.14 and Pillow 12.3.0.
With correct size labels, both directory orders reported 16x16 and 32x32. With swapped size labels, both orders reported only 16x16 after the default reader loaded the icon. Direct inspection of the embedded PNG headers still found 16x16 and 32x32 in every control.
Every control contained 244 bytes and encoded to 328 Base64 characters, and each Base64 roundtrip restored its own input byte for byte. The embedded image payload bytes were unchanged across the controls.
Limits
The altered files were deliberately constructed abnormal controls, not ordinary correctly labeled ICO files. The reduced list was the state reported by the default Pillow reader after loading; it was not a direct count of the image payloads still present. These findings apply only to the generated controls and the named Python and Pillow versions; they do not establish browser behavior or the behavior of other icon readers.