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 を呼び出すときに、パレットの色の調整に使用する調整カテゴリを指定できます。 たとえば、 ColorAdjustTypeBitmap を ImageAttributes::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);
}
}
次の図は、上記のコードの出力を示しています。 元のパレットの緑が青に変更されていることに注意してください。
要件
サポートされている最小のクライアント | Windows XP、Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | gdiplusimageattributes.h (Gdiplus.h を含む) |
Library | Gdiplus.lib |
[DLL] | Gdiplus.dll |