次の方法で共有


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

ImageAttributes::SetOutputChannel メソッドは、指定されたカテゴリの CMYK 出力チャネルを設定します。

構文

Status SetOutputChannel(
  [in]           ColorChannelFlags channelFlags,
  [in, optional] ColorAdjustType   type
);

パラメーター

[in] channelFlags

種類: ColorChannelFlags

出力チャネルを指定する ColorChannelFlags 列挙体の要素。

[in, optional] type

種類: ColorAdjustType

出力チャネルが設定されるカテゴリを指定する ColorAdjustType 列挙体の要素。 既定値は ColorAdjustTypeDefault です

戻り値

種類: 状態

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

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

解説

ImageAttributes::SetOutputChannel メソッドを使用して、イメージをシアンマゼンタイエローブラック (CMYK) 色空間に変換し、CMYK カラー チャネルの 1 つの強度を調べることができます。 たとえば、 ImageAttributes オブジェクトを作成し、そのビットマップ出力チャネルを ColorChannelFlagsC に設定するとします。 その ImageAttributes オブジェクトのアドレスを DrawImage メソッドに渡すと、各ピクセルのシアン成分が計算され、レンダリングされたイメージ内の各ピクセルはシアン チャネルの強度を示す灰色の網掛けになります。 同様に、マゼンタ、黄色、黒のチャネルの強度を示すイメージをレンダリングできます。

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

既定の色とグレースケールの調整設定は、独自の調整設定を持たないすべてのカテゴリに適用されます。 たとえば、ビットマップ カテゴリの調整設定を指定しない場合、既定の設定はビットマップ カテゴリに適用されます。

特定のカテゴリに対してカラーまたはグレースケールの調整設定を指定するとすぐに、既定の調整設定はそのカテゴリに適用されなくなります。 たとえば、既定のカテゴリの調整設定のコレクションを指定するとします。 ColorAdjustTypeBitmapImageAttributes::SetOutputChannel メソッドに渡してビットマップ カテゴリの出力チャネルを設定した場合、既定の調整設定はビットマップに適用されません。

次の例では、 Image オブジェクトを作成し、 DrawImage メソッドを呼び出してイメージを描画します。 次に、 ImageAttributes オブジェクトを作成し、そのビットマップ出力チャネルをシアン (ColorChannelFlagsC) に設定します。 このコードは、Image オブジェクトのアドレスと ImageAttributes オブジェクトのアドレスを渡して、DrawImage を 2 回目に呼び出します。 各ピクセルのシアンチャネルが計算され、レンダリングされた画像はシアンチャネルの強度を灰色の色合いで示します。 このコードでは 、さらに DrawImage を 3 回呼び出して、マゼンタ、黄色、黒のチャネルの強度を示します。


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

   Image image(L"Mosaic2.bmp");

   // Draw the image unaltered.
   graphics.DrawImage(&image, 10, 10, width, height);

   UINT width = image.GetWidth();
   UINT height = image.GetHeight();

   ImageAttributes imAtt;

   // Draw the image, showing the intensity of the cyan channel.
   imAtt.SetOutputChannel(ColorChannelFlagsC, ColorAdjustTypeBitmap);
   graphics.DrawImage(
      &image,
      Rect(110, 10, width, height),  // dest rect
      0, 0, width, height,           // source rect
      UnitPixel,
      &imAtt);

   // Draw the image, showing the intensity of the magenta channel.
   imAtt.SetOutputChannel(ColorChannelFlagsM, ColorAdjustTypeBitmap);
   graphics.DrawImage(
      &image,
      Rect(210, 10, width, height),  // dest rect
      0, 0, width, height,           // source rect
      UnitPixel,
      &imAtt);

   // Draw the image, showing the intensity of the yellow channel.
   imAtt.SetOutputChannel(ColorChannelFlagsY, ColorAdjustTypeBitmap);
   graphics.DrawImage(
      &image,
      Rect(10, 110, width, height),  // dest rect
      0, 0, width, height,           // source rect
      UnitPixel,
      &imAtt);

   // Draw the image, showing the intensity of the black channel.
   imAtt.SetOutputChannel(ColorChannelFlagsK, ColorAdjustTypeBitmap);
   graphics.DrawImage(
      &image,
      Rect(110, 110, width, height),  // dest rect
      0, 0, width, height,            // source rect
      UnitPixel,
      &imAtt); 
}
				

次の図は、上記のコードの出力を示しています。

1 つの画像の 5 つのバージョンを示す図:最初の色、次にグレースケールの 4 つの異なるパターン

要件

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

関連項目

ColorAdjustType

ColorChannelFlags

ImageAttributes

ImageAttributes::ClearOutputChannel

ImageAttributes::ClearOutputChannelColorProfile

ImageAttributes::SetOutputChannelColorProfile