ImageAttributes::GetAdjustedPalette 方法 (gdiplusimageattributes.h)

ImageAttributes::GetAdjustedPalette方法會根據指定類別的調整設定來調整調色盤中的色彩。

語法

Status GetAdjustedPalette(
  [in, out] ColorPalette    *colorPalette,
  [in]      ColorAdjustType colorAdjustType
);

參數

[in, out] colorPalette

類型: ColorPalette*

在輸入上, ColorPalette 結構的指標包含要調整的調色盤,並在輸出上接收調整的調色盤。

[in] colorAdjustType

類型: ColorPalette

ColorAdjustType列舉的 元素,指定調整設定將套用至調色盤的類別。

傳回值

類型: 狀態

如果方法成功,它會傳回 Ok,這是 Status 列舉的元素。

如果方法失敗,它會傳回 Status 列舉的其中一個其他元素。

備註

ImageAttributes物件會維護五個調整類別的色彩和灰階設定:預設、點陣圖、筆刷、手寫筆和文字。 例如,您可以指定預設類別的色彩重新對應資料表、點陣圖類別的不同色彩重新對應表,以及畫筆類別的色彩重新對應表。

當您呼叫 ImageAttributes::GetAdjustedPalette時,您可以指定用來調整調色盤色彩的調整類別。 例如,如果您將 ColorAdjustTypeBitmap 傳遞至 ImageAttributes::GetAdjustedPalette 方法,則會使用點陣圖類別的調整設定來調整調色盤色彩。

範例

下列範例會初始化具有四種色彩的 ColorPalette 結構:青色、黑色、紅色和綠色。 此程式碼也會建立 ImageAttributes 物件,並設定其點陣圖重新對應表,讓綠色轉換成藍色。 然後,程式碼會將調色盤的位址傳遞至ImageAttributes::GetAdjustedPalette方法,藉此調整調色盤色彩。 程式碼會顯示四種調色盤色彩兩次:調整之前一次,再顯示一次調整。


VOID Example_GetAdjustedPalette(HDC hdc)
{
   Graphics graphics(hdc);
   INT j;

   // Create a palette that has four entries.
   ColorPalette* palette = 
      (ColorPalette*)malloc(sizeof(ColorPalette) + 3 * sizeof(ARGB));
   palette->Flags = 0;
   palette->Count = 4;

   palette->Entries[0] = 0xFF00FFFF;   // aqua
   palette->Entries[1] = 0xFF000000;   // black
   palette->Entries[2] = 0xFFFF0000;   // red
   palette->Entries[3] = 0xFF00FF00;   // green
  
   // Display the four palette colors with no adjustment.
   SolidBrush brush(Color());
   for(j = 0; j < 4; ++j)
   {
      brush.SetColor(palette->Entries[j]);
      graphics.FillRectangle(&brush, 30*j, 0, 20, 20);
   }

   // Create a remap table that converts green to blue.
   ColorMap map;
      map.oldColor = Color(255, 0, 255, 0);  // green
      map.newColor = Color(255, 0, 0, 255);  // blue

   // Create an ImageAttributes object, and set its bitmap remap table.
   ImageAttributes imAtt;
   imAtt.SetRemapTable(1, &map, ColorAdjustTypeBitmap);

   // Adjust the palette.
   imAtt.GetAdjustedPalette(palette, ColorAdjustTypeBitmap);

   // Display the four palette colors after the adjustment.
   for(j = 0; j < 4; ++j)
   {
      brush.SetColor(palette->Entries[j]);
      graphics.FillRectangle(&brush, 30*j, 30, 20, 20);
   }
}
				

下圖顯示上述程式碼的輸出。 請注意,原始調色盤中的綠色已變更為藍色。

具有兩列彩色矩形的圖例;第 1 列的最後一個綠色,第 2 列為藍色

需求

   
最低支援的用戶端 Windows XP、Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 gdiplusimageattributes.h (include Gdiplus.h)
程式庫 Gdiplus.lib
Dll Gdiplus.dll

另請參閱

點陣圖

Color

ColorAdjustType

ColorMap

ColorPalette

映像

ImageAttributes

中繼檔

PaletteFlags

重新著色