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 です。
戻り値
種類: 状態
メソッドが成功した場合は、Status 列挙の要素である Ok を返します。
メソッドが失敗した場合は、 Status 列挙体の他の要素のいずれかを返します。
解説
color-remap テーブルは、 ColorMap 構造体の配列です。 各 ColorMap 構造体には 2 つの Color オブジェクトがあります。1 つは古い色を指定し、1 つは対応する新しい色を指定します。 レンダリング中に、再マップ テーブルの古い色のいずれかに一致するすべての色が、対応する新しい色に変更されます。
ImageAttributes オブジェクトは、既定、ビットマップ、ブラシ、ペン、テキストの 5 つの調整カテゴリの色とグレースケールの設定を維持します。 たとえば、既定のカテゴリの色の再マップ、ビットマップ カテゴリのカラー 再マップ テーブル、およびペン カテゴリの別のカラー 再マップ テーブルを指定できます。
既定の色調整とグレースケール調整設定は、独自の調整設定を持たないすべてのカテゴリに適用されます。 たとえば、ペン カテゴリの調整設定を指定しない場合、既定の設定はペン カテゴリに適用されます。
特定のカテゴリに対して色調整またはグレースケール調整設定を指定するとすぐに、既定の調整設定がそのカテゴリに適用されなくなります。 たとえば、既定のカテゴリの調整設定のコレクションを指定するとします。 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 を含む) |
Library | Gdiplus.lib |
[DLL] | Gdiplus.dll |