首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

GDIPAPI 單元輔助函數完整參考:Make/Color/Get 系列

     編輯:Delphi

GDIPAPI.pas 提供了一套完整的輔助函數,簡化 GDI+ 結構體建構、顏色操作與元件提取。熟練使用這些函數可大幅減少樣板代碼,提升代碼可讀性。

結構體建構函數 (Make 系列)

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;

顏色元件提取函數 (Get 系列)

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 皆提供整數與浮點雙重載
  • 善用這些函數可避免手動填寫記錄結構的繁瑣代碼
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved