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

Delphi GDI+ 學習筆記 (21):色彩管理 (Alpha 透明度、系統色彩、混合模式)

     編輯:Delphi

TGPColor 32 位 ARGB、140+ 系統命名色彩、SourceOver/SourceCopy 混合模式

GDI+ 色彩為 32 位無號整數 (AARRGGBB),MakeColor(A,R,G,B) 宏便利建立。aclXxx 常數提供 140 種系統命名色彩 (Web 色彩 + 系統 UI 色彩)。CompositingMode 控制繪圖時與背景像素的混合邏輯。

1. Alpha 透明度 (0=全透明, 255=不透明)


sb := TGPSolidBrush.Create(MakeColor(128, 255, 0, 0)); // 50% 透明紅
g.FillRectangle(sb, 10, 10, 100, 100);

2. 使用系統命名色彩常數


color := aclRed; // $FFFF0000
sb := TGPSolidBrush.Create(color);
g.FillRectangle(sb, 10, 10, 100, 100);

3. 混合模式


p := TGPPen.Create(MakeColor(128, 255, 0, 0), 20); // 半透明紅筆
g.SetCompositingMode(CompositingModeSourceCopy); // 直接覆蓋 (忽略 Alpha 混合)
g.DrawLine(p, 11, 11, 111, 111);
g.SetCompositingMode(CompositingModeSourceOver); // 標準 Alpha 混合 (預設)
g.DrawLine(p, 66, 11, 222, 128);

CompositingMode 對照

Delphi微軟行為
CompositingModeSourceOverSourceOver標準 Alpha 混合 (Porter-Duff Source Over)
CompositingModeSourceCopySourceCopy直接複製像素 (忽略 Alpha,覆蓋背景)

aclXxx 系統色彩常數 (節錄 140+ 完整列表)

包含:aclActiveBorder、aclActiveCaption、aclAliceBlue、aclAntiqueWhite、aclAqua、aclAquamarine、aclAzure、aclBeige、aclBisque、aclBlack、aclBlanchedAlmond、aclBlue、aclBlueViolet、aclBrown、aclBurlyWood、aclButtonFace、aclButtonHighlight、aclButtonShadow、aclCadetBlue、aclChartreuse、aclChocolate、aclControl、aclControlDark、aclControlDarkDark、aclControlLight、aclControlLightLight、aclControlText、aclCoral、aclCornflowerBlue、aclCornsilk、aclCrimson、aclCyan、aclDarkBlue、aclDarkCyan、aclDarkGoldenrod、aclDarkGray、aclDarkGreen、aclDarkKhaki、aclDarkMagenta、aclDarkOliveGreen、aclDarkOrange、aclDarkOrchid、aclDarkRed、aclDarkSalmon、aclDarkSeaGreen、aclDarkSlateBlue、aclDarkSlateGray、aclDarkTurquoise、aclDarkViolet、aclDeepPink、aclDeepSkyBlue、aclDesktop、aclDimGray、aclDodgerBlue、aclFirebrick、aclFloralWhite、aclForestGreen、aclFuchsia、aclGainsboro、aclGhostWhite、aclGold、aclGoldenrod、aclGradientActiveCaption、aclGradientInactiveCaption、aclGray、aclGrayText、aclGreen、aclGreenYellow、aclHighlight、aclHighlightText、aclHoneydew、aclHotPink、aclHotTrack、aclInactiveBorder、aclInactiveCaption、aclInactiveCaptionText、aclIndianRed、aclIndigo、aclInfo、aclInfoText、aclIvory、aclKhaki、aclLavender、aclLavenderBlush、aclLawnGreen、aclLemonChiffon、aclLightBlue、aclLightCoral、aclLightCyan、aclLightGoldenrodYellow、aclLightGray、aclLightGreen、aclLightPink、aclLightSalmon、aclLightSeaGreen、aclLightSkyBlue、aclLightSlateGray、aclLightSteelBlue、aclLightYellow、aclLime、aclLimeGreen、aclLinen、aclMagenta、aclMaroon、aclMediumAquamarine、aclMediumBlue、aclMediumOrchid、aclMediumPurple、aclMediumSeaGreen、aclMediumSlateBlue、aclMediumSpringGreen、aclMediumTurquoise、aclMediumVioletRed、aclMenu、aclMenuBar、aclMenuHighlight、aclMenuText、aclMidnightBlue、aclMintCream、aclMistyRose、aclMoccasin、aclNavajoWhite、aclNavy、aclOldLace、aclOlive、aclOliveDrab、aclOrange、aclOrangeRed、aclOrchid、aclPaleGoldenrod、aclPaleGreen、aclPaleTurquoise、aclPaleVioletRed、aclPapayaWhip、aclPeachPuff、aclPeru、aclPink、aclPlum、aclPowderBlue、aclPurple、aclRed、aclRosyBrown、aclRoyalBlue、aclSaddleBrown、aclSalmon、aclSandyBrown、aclScrollBar、aclSeaGreen、aclSeaShell、aclSienna、aclSilver、aclSkyBlue、aclSlateBlue、aclSlateGray、aclSnow、aclSpringGreen、aclSteelBlue、aclTan、aclTeal、aclThistle、aclTomato、aclTransparent、aclTurquoise、aclViolet、aclWheat、aclWhite、aclWhiteSmoke、aclWindow、aclWindowFrame、aclWindowText、aclYellow、aclYellowGreen。

善用系統色彩常數可讓 UI 自動適應使用者主題 (深色/淺色模式)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved