HT_ComputeRGBGammaTable関数 (winddi.h)

HT_ComputeRGBGammaTable関数を使用すると、GDI はガンマ値に基づいてデバイスの赤、緑、青の強度を計算します。

構文

LONG HT_ComputeRGBGammaTable(
  [in]  USHORT GammaTableEntries,
  [in]  USHORT GammaTableType,
  [in]  USHORT RedGamma,
  [in]  USHORT GreenGamma,
  [in]  USHORT BlueGamma,
  [out] LPBYTE pGammaTable
);

パラメーター

[in] GammaTableEntries

赤、緑、青の各強度について、テーブル内のステップの合計数を指定します。 この値は 1 より大きく、256 以下である必要があります (つまり、2 <= GammaTableEntries<= 256)。 たとえば、値 256 は、ガンマ テーブルに 256 個の赤いエントリ、256 個の緑のエントリ、256 個の青いエントリがあることを意味します。

[in] GammaTableType

pGammaTable のorganizationを指定します。 有効なテーブルの種類は次のとおりです。

GammaTableType 説明
0 ガンマ テーブルの赤、緑、青の値は一緒にインターリーブされます。 各ガンマ ステップは 3 バイトです。赤、緑、青の各 1 バイト。
1 赤、緑、青のテーブルは別々にパックされます。つまり、赤いテーブル全体の後に緑色のテーブル全体が続き、その後に青いテーブル全体が続きます。 個々のエントリはそれぞれ 1 バイトであり、各サブテーブルの長さは GammaTableEntries バイトの合計になります。

[in] RedGamma

赤いガンマ値を指定します。 この USHORT 値は、4 桁の最下位桁数が (暗黙的な) 小数点の右側にある実数として解釈されます。 たとえば、ガンマ値 10000 は実数 1.0000 を表し、12345 は 1.2345 を表します。 許容される最小ガンマ値は 0.0000 で、最大許容値は 6.5535 です。

[in] GreenGamma

緑色のガンマ値を指定します。 この USHORT 値は、4 桁の最下位桁数が (暗黙的な) 小数点の右側にある実数として解釈されます。 たとえば、ガンマ値 10000 は実数 1.0000 を表し、12345 は 1.2345 を表します。 許容される最小ガンマ値は 0.0000 で、最大許容値は 6.5535 です。

[in] BlueGamma

青いガンマ値を指定します。 この USHORT 値は、4 桁の最下位桁数が (暗黙的な) 小数点の右側にある実数として解釈されます。 たとえば、ガンマ値 10000 は実数 1.0000 を表し、12345 は 1.2345 を表します。 許容される最小ガンマ値は 0.0000 で、最大許容値は 6.5535 です。

[out] pGammaTable

ガンマ テーブルの赤、緑、青の強度が書き込まれるバイト配列へのポインター。 返されるテーブルは、 GammaTableType パラメーターで指定されたとおりに編成されます。

戻り値

戻り値は、 pGammaTable に書き込まれたガンマ エントリの数です。成功すると、この値は GammaTableEntries と等しくなります。 GammaTableEntries が 2 より小さいか、256 より大きい場合、戻り値は 0 になります。

pGammaTable で返される赤、緑、青の強度は 0 から 255 の範囲です。

解説

GDI ハーフトーン サービス ルーチンでは、特別なパレットを使用してハーフトニングを行います。 デバイスが 16 ビットまたは 24 ビットの種類のサーフェスに対して 24 ビット デバイスの色のプールからピクセル パレットごとに 8 ビットを選択した場合、GDI は赤、緑、青の色のステップを想定します。それぞれが等しい明るさを持っています。

GDI は、ドライバーが GDI で使用されるピクセルごとの 8 ビット ハーフトーン パレットに対してクエリを実行できるように、このサービスを提供します。または、デバイスのガンマ補正および等化された RGB 色の強度を計算します。

要件

   
サポートされている最小のクライアント Windows 2000 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム ユニバーサル
Header winddi.h (Winddi.h を含む)
Library Win32k.lib
[DLL] Win32k.sys