次の方法で共有


SHGetInverseCMAP 関数 (shlwapi.h)

[この関数は、Windows XP および Windows Server 2003 を通じて使用できます。 以降のバージョンの Windows では変更または使用できない場合があります。]

ハーフトーン パレットの逆カラー テーブル マッピングを取得します。

構文

LWSTDAPI SHGetInverseCMAP(
  [out] BYTE  *pbMap,
  [in]  ULONG cbMap
);

パラメーター

[out] pbMap

型: BYTE*

逆カラー テーブル マッピングを受け取る BYTEs の配列へのポインター、または cbMap パラメーターの値に応じて、逆カラー テーブル マッピングのキャッシュされたコピーへのポインターを受け取る LPBYTE へのポインター。

[in] cbMap

種類: ULONG

pbMap によって指されるバッファーのサイズ。これは、その内容も定義します。 2 つの値が認識されます。

(sizeof(BYTE*))

pbMap が指すバッファーは、逆カラー マップ テーブルのキャッシュされたコピーへのポインターを受け取ります。

(32768)

pbMap が指すバッファーは、逆カラー マップ テーブルのコピーを受け取ります。 バッファーのサイズは正確に 32,768 バイトである必要があります。

戻り値

種類: HRESULT

この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。

注釈

逆カラー マッピング テーブルは、32,768 バイトのテーブルです。 ハーフトーン パレットの色のインデックスが含まれています。 各インデックスは、555 形式で表される特定の RGB 値に対応するバッファー内の位置に格納されます。 これらのペアリングを使用すると、元の色の近似であるハーフトーン パレットで色を見つけることができます。

たとえば、ハーフトーン パレットでカラー #306040 の近似値である色を決定する方法は次のとおりです。

  1. 色を赤、緑、青の各成分に分解します。 この場合、赤成分は0x30、緑色成分は0x60、青成分は0x40。
  2. 色を 555 形式に再アセンブルします。 24 ビット RGB カラーを 555 形式に縮小するための数式を次に示します。
    ((red / 8) << 10) + ((blue / 8) << 5) + (green / 8)
    

    この例では、555 形式の値は ((0x30/ 8) 10) << + ((0x60 / 8) 5) << + (0x40 / 8) = 6536 です。

  3. 逆カラー マップ テーブルの位置 6536 に格納されているインデックス値は、ハーフトーン パレットの色のインデックスであり、カラー #306040 に対する妥当な近似値です。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional、Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー shlwapi.h
Library Shlwapi.lib
[DLL] Shlwapi.dll (バージョン 5.0 以降)

こちらもご覧ください

CreateHalftonePalette

GetNearestColor