GDIPAPI.pas 提供了一套完整的輔助函數,簡化 GDI+ 結構體建構、顏色操作與元件提取。熟練使用這些函數可大幅減少樣板代碼,提升代碼可讀性。
function MakePoint(X, Y: Integer): TGPPoint; overload;
function MakePoint(X, Y: Single): TGPPointF; overload;
function MakeSize(Width, Height: Integer): TGPSize; overload;
function MakeSize(Width, Height: Single): TGPSizeF; overload;
function MakeRect(x, y, width, height: Integer): TGPRect; overload;
function MakeRect(x, y, width, height: Single): TGPRectF; overload;
function MakeRect(location: TGPPoint; size: TGPSize): TGPRect; overload;
function MakeRect(location: TGPPointF; size: TGPSizeF): TGPRectF; overload;
function MakeRect(const Rect: TRect): TGPRect; overload;
function MakeColor(r, g, b: Byte): ARGB; overload; { RGB,Alpha=255 }
function MakeColor(a, r, g, b: Byte): ARGB; overload; { ARGB 完整 }
function MakeCharacterRange(First, Length: Integer): TCharacterRange;
function GetAlpha(color: ARGB): BYTE; { 透明度 0-255 }
function GetRed(color: ARGB): BYTE; { 紅色分量 }
function GetGreen(color: ARGB): BYTE; { 綠色分量 }
function GetBlue(color: ARGB): BYTE; { 藍色分量 }
function ColorRefToARGB(rgb: COLORREF): ARGB; { Delphi TColor (BGR) → GDI+ ARGB }
function ARGBToColorRef(Color: ARGB): COLORREF; { GDI+ ARGB → Delphi TColor (BGR) }
var
pt: TGPPoint;
rect: TGPRect;
clr: TGPColor;
r, g, b, a: Byte;
begin
pt := MakePoint(100, 50); { 整數座標 }
rect := MakeRect(10, 20, 200, 150); { x, y, w, h }
clr := MakeColor(200, 255, 100, 50); { 半透明橙紅 }
a := GetAlpha(clr); { 200 }
r := GetRed(clr); { 255 }
g := GetGreen(clr); { 100 }
b := GetBlue(clr); { 50 }
clr := ColorRefToARGB(clRed); { $FF0000FF → $FFFF0000 }
end;
MakeColor 參數順序為 A, R, G, B (非常見的 R, G, B, A)ColorRefToARGB 會自動處理 BGR→RGB 通道交換MakeRect/Point/Size 皆提供整數與浮點雙重載