W jaki sposób mogę zamienić kolor zapisany jako 16bajtowa liczba na jego większy odpowiednik, czyli TColor? Znalazłem taki oto kod:
Color=( (((Color16 >> 10) & 0x1F) * 0xFF / 0x1F) |
((((Color16 >> 5) & 0x1F) * 0xFF / 0x1F) << 8) |
((( Color16 & 0x1F) * 0xFF / 0x1F) << 16));
Niestety po przetłumaczeniu na op nie chce działać :(.
Color:=(((Color shr 10) and $01F)$0FF/$01F) or ((((Color shr 5) and $01F)$0FF/$01F) shl 8) or (((Color and $01F)*$0FF/$01F) shl 16);
Proszę więc o przetłumaczenie tego kodu na pascalowy, ale działający :). Może też być jakiś inny sposób, byle by działało. A już najfajniej by było, gdyby można było obliczyć od razu składowe rgb :).
// Dopisane
Faktycznie, wykorzystywanych jest tylko 15 bitów, pierwszy jest nieużywany. Dzięki za kod, będę go zaraz testował. A msz może algorytm, działający w odwrotną stronę, tzn konwertujący rgb na najbliższy kolor w tymformacie?