次の方法で共有


ImageAttributes::GetAdjustedPalette メソッド (gdiplusimageattributes.h)

ImageAttributes::GetAdjustedPalette メソッドは、指定したカテゴリの調整設定に従ってパレットの色を調整します。

構文

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

パラメーター

[in, out] colorPalette

種類: ColorPalette*

入力時に調整するパレットを含み、出力時に調整されたパレットを受け取る ColorPalette 構造体へのポインター。

[in] colorAdjustType

種類: ColorPalette

調整設定をパレットに適用するカテゴリを指定する ColorAdjustType 列挙体の要素。

戻り値

種類: 状態

メソッドが成功した場合は、Status 列挙体の要素である Ok を返します

メソッドが失敗した場合は、 Status 列挙体の他の要素のいずれかを返します。

解説

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

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

次の例では、aqua、black、red、green の 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

Color

ColorAdjustType

カラーマップ

ColorPalette

イメージ

ImageAttributes

メタファイル

PaletteFlags

色変更