79341415

Date: 2025-01-09 05:00:46
Score: 1
Natty:
Report link

Thanks to Craig...

So after Craig updated his answer, I have understood what is up. It is kinda shameful... but I have been using 1 << 16 as my filler byte in png_set_add_alpha, the 1 << 16 is equal to 65536,

which in binary is 000000001 00000000 00000000. Note the last 2 null bytes. the png_set_add_alpha takes the png_uint32 as filler byte, but anyway, the maximum depth of alpha channel is 16 (2 bytes), and exactly 2 of this bytes were 0. Yes, because I did the 1 << 16 and for some reason thought that I will get 0xFF. So libpng understood it as convert paletted image to rgb and set its alpha to 0 so it will be transparent. What a shame.

Craig used 0xFE in his answer, it should be 0xFF (larger by 1) for maximum opacity, anyway. Thank you Craig for your dedication and help, you did a great job!

Reasons:
  • Blacklisted phrase (0.5): Thank you
  • Blacklisted phrase (0.5): Thanks
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (0.5):
Posted by: Vladyslav Rehan