[delphi] Wat is de kleurdiepte van een icoontje?

Pagina: 1
Acties:

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Topicstarter
Ik heb een stuk code geschreven die een icoontje in een PNG omzet, en hierbij wordt ook rekening gehouden met een eventueel alpha-blended XP-icoontje. Maar het probleem hierbij is hoe ik erachter kom of een icoontje een alpha-channel heeft, of beter nog: wat de kleurdiepte van een icoontje is.

Ik heb nu een call naar GetIconInfo, die dus twee bitmaps teruggeeft. Vervolgens van de kleurbitmap vraag ik de kleurdiepte op met GetDeviceCaps(Handle, BITSPIXEL), maar die geeft altijd de kleurdiepte van de beeldscherminstellingen terug. Op zich logisch, omdat de kleur- en maskbitmap van GetIconInfo device-dependent bitmaps zijn en dus geen echte kleurdiepte hebben...

Het probleem is dus dat als ik een 8-bits icoontje erin stop, dan denkt ie dat de kleurdiepte 32 is, en dus denkt dat er een alphachannel in zit. Maar de alpha-waarden van de pixels zijn dan 0, dus 100% transparant, en dat gaat niet goed.

Dus samengevat: hoe kom ik achter de werkelijke kleurdiepte van een HIcon?

日本!🎌