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 列挙体の他の要素のいずれかを返します。

注釈

ImageAttributes オブジェクトは、既定、ビットマップ、ブラシ、ペン、テキストの 5 つの調整カテゴリの色とグレースケールの設定を保持します。 たとえば、既定のカテゴリのカラー 再マップ テーブル、ビットマップ カテゴリの別のカラー 再マップ テーブル、およびペン カテゴリの別の色再マップ テーブルを指定できます。

ImageAttributes::GetAdjustedPalette を呼び出すときは、パレットの色を調整するために使用する調整カテゴリを指定できます。 たとえば、 ColorAdjustTypeBitmapImageAttributes::GetAdjustedPalette メソッドに 渡すと、ビットマップ カテゴリの調整設定を使用してパレットの色が調整されます。

次の例では、アクア、ブラック、レッド、グリーンの 4 色で ColorPalette 構造体を初期化します。 また、このコードは ImageAttributes オブジェクトを作成し、そのビットマップ再マップ テーブルを設定して、緑が青に変換されるようにします。 次に、パレットのアドレスを ImageAttributes オブジェクトの ImageAttributes::GetAdjustedPalette メソッドに 渡すことで、パレットの色 調整します。 このコードでは、4 つのパレットの色が 2 回表示されます。調整の前に 1 回、調整後に 1 回です。


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);
   }
}
				

次の図は、上記のコードの出力を示しています。 元のパレットの緑が青に変更されていることに注意してください。

色付きの四角形の 2 行の図。最後が行 1 の緑、行 2 の青

要件

   
サポートされている最小のクライアント Windows XP、Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー gdiplusimageattributes.h (Gdiplus.h を含む)
Library Gdiplus.lib
[DLL] Gdiplus.dll

こちらもご覧ください

Bitmap

ColorAdjustType

カラーマップ

ColorPalette

Image

ImageAttributes

メタファイル

PaletteFlags

色変更