5cc84991f2
CreateDIBSection does not guarantee zeroed memory. Uninitialized bytes with non-zero RGB but zero alpha were getting alpha=255 set by the existing pixel loop, causing a black square around the badge circle. Zeroing with write_bytes before GDI drawing ensures only explicitly painted pixels are opaque. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>