ImageAttributes::SetRemapTable 方法 (gdiplusimageattributes.h)

ImageAttributes::SetRemapTable方法會設定指定類別的色彩重新對應資料表。

語法

Status SetRemapTable(
  [in]           UINT            mapSize,
  [in]           const ColorMap  *map,
  [in, optional] ColorAdjustType type
);

參數

[in] mapSize

類型: UINT

INT ,指定 對應 陣列中的專案數目。

[in] map

類型:const ColorMap*

定義色彩地圖之 ColorMap 結構的陣列指標。

[in, optional] type

類型: ColorAdjustType

ColorAdjustType列舉的元素,指定已設定色彩重新對應表格的類別。 預設值為 ColorAdjustTypeDefault

傳回值

類型: 狀態

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

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

備註

色彩重新對應表是 ColorMap 結構的陣列。 每個 ColorMap 結構都有兩個 Color 物件:一個指定舊色彩,另一個指定對應的新色彩。 在轉譯期間,符合重新對應表格中其中一個舊色彩的任何色彩,會變更為對應的新色彩。

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

預設色彩和灰階調整設定會套用至沒有自己調整設定的所有類別。 例如,如果您從未指定畫筆類別的任何調整設定,則預設設定會套用至畫筆類別。

一旦您指定特定類別的色彩或灰階調整設定,預設調整設定就不再套用至該類別。 例如,假設您指定預設類別的調整設定集合。 如果您藉由將 ColorAdjustTypePen 傳遞至 ImageAttributes::SetRemapTable 方法來設定畫筆類別的色彩重新對應表,則不會將任何預設調整設定套用至手寫筆。

範例

下列範例會根據 .bmp 檔案建立 Image 物件,然後繪製影像。 此程式碼會建立 ImageAttributes 物件,並設定其預設的重新對應表,讓紅色轉換成藍色。 然後,程式碼會再次使用重新對應表格所指定的色彩調整來繪製影像。


VOID Example_SetRemapTable(HDC hdc)
{
   Graphics graphics(hdc);

   // Create an Image object based on a .bmp file.
   // The image has one red stripe and one green stripe.
   Image image(L"RedGreenStripes.bmp");

   // Create an ImageAttributes object and set its remap table.
   ImageAttributes imageAtt;
   ColorMap cMap;
   cMap.oldColor = Color(255, 255, 0, 0);  // red 
   cMap.newColor = Color(255, 0, 0, 255);  // blue
   imageAtt.SetRemapTable(12, &cMap,
      ColorAdjustTypeDefault);

   // Draw the image with no color adjustment.
   graphics.DrawImage(&image, 10, 10, image.GetWidth(), image.GetHeight());
 
   // Draw the image with red converted to blue.
   graphics.DrawImage(&image,
      Rect(100, 10, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),           // source rect
      UnitPixel,
      &imageAtt);
}
				

下圖顯示上述程式碼的輸出。

圖例顯示具有紅色和綠色區域的矩形,然後使用紅色區域取代為藍色的相同矩形

需求

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

另請參閱

點陣圖

Color

ColorAdjustType

ColorMap

映像

ImageAttributes

ImageAttributes::ClearRemapTable

中繼檔

重新著色