<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 1.5 顏色 與 GDI 相比,GDI+的顏色新增了一個透明分量,并且定義了顏色類 Color。 ### 1.5.1 顏色類型 ARGB GDI+中的顏色,與 GDI 中的顏色的最大不同,是增加了一個字節(8 位)的透明分量 alpha(α ),用來表示顏色的不透明度:0 透明(看不見前景色,只有背景色)~255 不透明(看不見背景色,只有前景色,相當于覆蓋和拷貝)。背景色指屏幕窗口中原有圖形的顏色, 前景色指將要繪制圖形的顏色。 因此,GDI+中的顏色一般都是用四個字節表示(Intel CPU 中,多字節整數的低位在前): + 整數序(高位→低位): ![](https://box.kancloud.cn/2016-04-18_57144a7df3340.png) + 字節序(低字節→高字節): ![](img/1-5-1-2.png) 在 GDI 中沒有專門的顏色類,只有一個顏色類型 COLORREF,也定義為: ``` typedef DWORD COLORREF; // 0x00bbggrr (windef.h) ``` 和一個生成顏色的宏: ``` COLORREF RGB( BYT E bRed, BYTE bGreen, BYT E bBlue); ``` 其中: ``` typedef unsigned char BYTE; // 單字節無符號字符整數 ``` 在 GDI+中,也將顏色數據定義為無符號 4 字節長整數類型 DWORD,但是改名為 ARGB: ``` typedef DWORD ARGB; // gdipluspixelformats.h ``` ### 1.5.2 顏色類 Color 而且 GDI+中還定義了專門的 Color 類,不僅包含了此顏色數據,而且還有多個構造函 數和其他輔助方法、枚舉和常量。 Color 類的構造函數中,最常用的是: ``` Color( BYTE a, BYTE r, BYT E g, BYTE b); // a 為 alpha 分量α 但也有一個默認構造函數: Color( VOID); // 不透明黑色,相當于 Color(255, 0, 0, 0); ``` 還有一個與 GDI 兼容的構造函數: ``` Color( BYTE r, BYTE g, BYTE b); // 不透明色,相當于 Color(255, r, g, b); ``` 你也可以直接用含顏色數據的 4 字節無符號整數,來構造 Color 類的對象: ``` Color( ARGB argb); // 相當于 Color(a, r, g, b); ``` 該整數可以由 Color 類的靜態方法 MakeARGB 或動態方法 GetValue 獲得: ``` static ARGB MakeARGB( BYT E a, BYTE r, BYTE g, BYTE b); ARGB GetValue(VOID); ``` 你還也可以用 Color 類的方法: ``` COLORREF ToCOLORREF() const; ``` 將 Color 對象中的顏色,轉換為 GDI 的顏色類型。 Color 類還提供了各個顏色分量的獲取方法及其簡化版: ``` BYTE GetAlpha() const; BYTE GetA() const; BYTE GetRed() const; BYTE GetR() const; BYTE GetGreen() const; BYTE GetG() const; BYTE GetBlue() const; BYTE GetB() const; ``` 你也可以先用宏: ``` BYTE GetRValue(DWORD rgb); // COLORREF rgb BYTE GetGValue(DWORD rgb); // COLORREF rgb BYTE GetBValue(DWORD rgb); // COLORREF rgb ``` 獲取 COLORREF 的 R、G、B 值,然后再用這些值調用 Color 類的構造函數來創建 Color 對象。例如: ``` COLORREF crCol = colDlg.GetColor(); BYTE r = GetRValue(crCol), g = GetGValue(crCol), b = GetBValue(crCol); Color col(r, g, b); // Color col(crCol | (255<<24)); ``` ### 1.5.3 顏色枚舉常量 GDI+在顏色頭文件 GdiplusColor.h 中,定義了 141 個公用顏色枚舉常量,都是對應顏色 的英文單詞。可以用 Color 類直接訪問,例如:Color ::Red。 下面是部分顏色枚舉常量(按字母順序排列): ``` public: // Common color constants 通用顏色常量 enum { AliceBlue = 0xFFF0F8FF, // 艾麗絲藍 AntiqueWhite = 0xFFFAEBD7, // 古董白 Aqua = 0xFF00FFFF, // 水綠 Aquamarine = 0xFF7FFFD4, // 碧綠 Azure = 0xFFF0FFFF, // 天藍 Beige = 0xFFF5F5DC, // 米色 Bisque = 0xFFFFE4C4, // 湯黃 Black = 0xFF000000, // 黑 BlanchedAlmond = 0xFFFFEBCD, // 布蘭奇杏黃 Blue = 0xFF0000FF, // 藍 BlueViolet = 0xFF8A2BE2, // 藍紫 Brown = 0xFFA52A2A, // 棕褐 ... Tan = 0xFFD2B48C, // 茶色 Teal = 0xFF008080, // 水鴨青 Thistle = 0xFFD8BFD8, // 薊色 Tomato = 0xFFFF6347, // 番茄紅 Transparent = 0x00FFFFFF, // 透明 Turquoise = 0xFF40E0D0, // 寶石綠 Violet = 0xFFEE82EE, // 紫羅蘭 Wheat = 0xFFF5DEB3, // 小麥色 White = 0xFFFFFFFF, // 白 WhiteSmoke = 0xFFF5F5F5, // 煙白 Yellow = 0xFFFFFF00, // 黃 YellowGreen = 0xFF9ACD32 // 黃綠 }; ``` 圖 14-12 是各種顏色枚舉字符常量(包括中文譯名)所對應的色塊表(按字母順序排列)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看