Code:
#define GetDibR(drgb) (((drgb) & 0x00ff0000) >> 16)
#define GetDibG(drgb) (((drgb) & 0x0000ff00) >> 8)
#define GetDibB(drgb) ((drgb) & 0x000000ff)
Delphi-Quellcode:
function GetDibR(const drgb: cardinal): cardinal; inline;
begin
Result := (drgb and $00ff0000) shr 16;
end;
function GetDibG(const drgb: cardinal): cardinal; inline;
begin
Result := (drgb and $0000ff00) shr 8;
end;
function GetDibB(const drgb: cardinal): cardinal; inline;
begin
Result := (drgb and $000000ff);
end;
Die vordefinierten Funktionen GetRValue, GetGValue und GetBValue sollten aber an sich das gleiche tun, sofern sie nicht gerade von einer anderen Byte-Order ausgehen (ich vergesse das immer...).
UINT*
ist nichts anderes als ein
PCardinal
.