ネイティブ ピクセル形式の概要
このトピックでは、Windows イメージング コンポーネント (WIC) によって提供されるピクセル形式について説明します。
ピクセル形式は、ビットマップ内の各ピクセルのメモリ レイアウトを表します。 このメモリ レイアウトでは、数値形式とカラー チャネルの編成を指定してビットマップの画像データをエンコードする方法について説明します。 WIC では、複数のカラー チャネル構成スキームに対して複数の数値形式がサポートされ、さまざまなピクセル形式が提供されます。
ビット深度
ビット深度は、各カラー チャネルのエンコードに使用されるビット数です。 現在、ほとんどのデジタル画像はビット深度 8 を使用しています。つまり、ピクセル内の各カラー チャネルは 8 ビットで表され、チャネルごとに 2⁸ (256) の一意の値が提供されます。 ビット深度が 8 で、カラー チャネルが 3 つ (赤、緑、青など) の画像では、ピクセルあたり 24 ビット (bpp) が使用され、ピクセルごとに 2²⁴ (16,777,216) の異なる色が提供されます。
色の解像度を向上するために、ビット深度 16 または 32 を使用できます。 これにより、各カラー チャネルに 2¹⁶ (65,536) または 2 ² の一意の値が提供され、ピクセルあたりのメモリが増えます。
一部の形式では、ビット深度は 8 の倍数ではありません。 ピクセル内のカラー チャネルがバイト境界にアラインされないため、これらの形式は パック 形式と呼ばれます。 たとえば、ビット深度が 5 の場合、3 つのカラー チャネルを 16 ビットに格納できます (ピクセルをバイトアラインするために、1 ビットのパディングを含む)。 パックされた形式は、メモリまたは処理能力が制限されている場合に便利です。
数値エンコード
今日のデジタル画像の大部分では、符号なしバイトと符号なし短整数を使用して、各カラー チャネルの数値範囲を記述します。 最小値 (0) は 1 つのカラー チャネルで 0 の強度を表し、すべてのカラー チャネルが 0 の場合は黒になります。 同様に、最大値は完全な強度を表し、すべてのカラー チャネルが完全な強度である場合は白が達成されます。 ビット深度が 8 の UINT では、カラー チャネルごとに 256 個の一意の値が提供されます (0 ~ 255)。 16 ビット UINT は、カラー チャネルごとに 65,536 個の一意の値を提供します (0 ~ 65,535)。
さらに、WIC では固定小数点形式と浮動小数点形式がサポートされています。 各カラー チャネルの数値範囲全体が表示範囲より大きいため、これらの形式ではより大きなダイナミック レンジがサポートされます。 その結果、画像情報を失うことなく、画像処理の中間段階で、可視範囲の上または下に色を調整することができます。
Fixed-Point数値エンコード
16 ビットの固定小数点値は、符号ビット、2 つの整数ビット、および 13 個の小数部ビットの s2.13 として解釈されます。 この解釈を使用して、-4.0 から +3.999 までの数値範囲を指定します。は、符号付き整数値 8192 (0x2000) で表される 1.0 の値で表すことができます。
32 ビットの固定小数点値は s7.24 として解釈されます。符号ビット、7 つの整数ビット、および 24 ビットの小数部です。 この解釈を使用すると、-128.0 から +127.999 までの数値範囲が指定されます。は、符号付き整数値16777216 (0x01000000) で表される 1.0 の値で表すことができます。
カラー チャネル
ピクセル形式のカラー チャネルは、ビットマップの画像データ内の各色のメモリ レイアウトを定義します。 今日のデジタル画像にはさまざまな色チャネル構造が共通しており、WIC ではこれらの多くをサポートしています。
RGB/BGR カラー モデル
RGB および BGR 形式は、加法カラー モデルの色を表します。 画像を記述する最も一般的な方法は、赤 (R)、緑 (G)、青 (B) の色を表す 3 つの個別のカラー チャネルを使用することです。 WIC では、これら 3 つのチャネルが赤-緑-青 (RGB) または青-緑-赤 (BGR) の順序でサポートされます。 これは、各カラー チャネルがシーケンシャル ビット ストリーム内に表示される順序です。 たとえば、GUID_WICPixelFormat32bppRGB形式では、各ピクセルの幅は 32 ビットです。 赤のチャネルは、メモリ内の最初の (最下位の) バイトで、その後に緑、青が続きます。 逆に、GUID_WICPixelFormat32bppBGR形式では、カラー チャネルは逆の順序になります。 WIC では、GUID_WICPixelFormat16bppBGR555などの特殊なパックされたビット形式など、多数の RGB/BGR 形式がサポートされています。
注意
特殊な BGR パック ビット形式のカラー チャネルは、一般的なピクセル形式のカラー チャネルと同様に、8 の倍数ではありません。 これは、チャネル値がバイトアラインされていないことを意味します。 パックされたビット カラー チャネルを読み取る場合は、注意が必要です。
WIC は、RGB および BGR 形式に加えて、アルファ (A) チャネルをサポートする RGB および BGR ピクセル形式も提供します。 アルファ チャネルは、ピクセルの不透明度データを提供します。 アルファ チャネルが追加された形式の場合、アルファ チャネルは通常、カラー チャネルの順序で最後に表示されます。 たとえば、ピクセル形式のGUID_WICPixelFormat32bppBGRAでは、バイト順は青、緑、赤、アルファ チャネルです。
WIC では、事前乗算 (P) アルファ RGB ピクセル形式もサポートされています。 一般的な RGBA ピクセル形式では、赤、緑、青の色の値は、画像の実際の色値です。 標準の RGBA 形式で合成イメージを作成するには、前景イメージのアルファ値に赤、緑、青の各チャネルを乗算してから、背景画像の色に追加する必要があります。 事前に乗算されたアルファ RGB ピクセル形式では、各カラー チャネルにアルファ値が乗算されています。 これにより、アルファ チャネル データを使用した画像合成のより効率的な方法が提供されます。 PRGBA/PBGRA ピクセル形式で各チャネルの真の色値を取得するには、アルファ チャネル乗算を、カラー値をアルファ値で除算して反転する必要があります。
CMYK カラー モデル
CMYK は、印刷で使用される減算カラー モデルです。 CMYK モデルによって生成される色は、吸収されずに反射される光によって生成されます。 CMYKはシアン(C)、マゼンタ(M)、黄色(Y)、黒(K)の4チャンネルモデルです。 4 つのカラー チャネルがすべて最大値の場合、結果は黒になります。 RGB/BGR カラー モデルと同様に、シーケンシャル ビット ストリーム内のバイト順はピクセル形式の名前によって指定されます。 たとえば、ピクセル形式のGUID_WICPixelFormat32bppCMYKでは、各ピクセルは 32 ビットで構成されます。 最初のバイトにはシアン値が含まれており、その後にマゼンタ、イエロー、黒が続きます。 WIC は、CMYK のピクセル形式をピクセルあたり 32 ビットと 64 ビット (bpp) で提供します。
標準の CMYK カラー モデルに加えて、WIC は CMYK にアルファを提供します。 これにより、CMYK イメージは RGB/BGR カラー モデルと同様のアルファ ブレンド データを持つことができます。 アルファ チャネルは、ビットマップのシーケンシャル ビット ストリームで黒の直後に配置されます。
n チャネル カラー モデル
WIC は柔軟性を高めるために、定義済みのチャネル順序を持たないピクセル形式も提供します。 WIC は、8 と 16 の両方のビット深度で 3 ~ 8 チャンネルの連続画像データをサポートするピクセル形式を提供します。 RGB/BGR および CMYK ピクセル形式とは異なり、n チャネル形式ではチャネルの順序は指定されず、使用可能なカラー チャネルの数が指定されます。 たとえば、ピクセル形式のGUID_WICPixelFormat32bpp4Channelsでは、各ピクセルは 32 ビットで構成され、4 つのチャネルはそれぞれ 1 バイトを占有します。
WIC は、アルファを持つ n チャネルのピクセル形式も提供します。 これにより、n チャネルイメージは RGB/BGR および CMYK カラー モデルに似たアルファ ブレンド データを持つことができます。 アルファ チャネルは、ビットマップのシーケンシャル ビット ストリーム内の最後のカラー チャネルの直後に配置されます。
インデックス付きカラー モデルとグレースケール カラー モデル
インデックス付き書式では 、パレットと呼ばれる色のテーブルが使用 されます。 パレットは、ピクセル データの外部に格納されるか、暗黙的に定義されます。 画像内の各ピクセルの値は、パレット内のインデックスです。 インデックス付き形式では、ピクセルあたりのビット数はパレット内のエントリの数に直接関連します。 これにより、画像を表すために必要なデータの量が大幅に減りますが、画像で使用できる色の数も制限されます。 WIC では、1、2、4、または 8 bpp のインデックス付き形式がサポートされています。
モノクロ (グレースケール) 形式の場合、WIC ではピクセルあたり 1、2、4、8、16、32 ビットがサポートされます。 ビット深度が 1、8、16、32 の場合、カラー データは 1 つのチャネルに格納されます。 ビット深度が 2 または 4 の場合、ピクセルはグレースケール パレットのインデックスになります。
Y'CbCr カラー モデル
WIC では、JPEG JFIF Y'CbCr カラー モデルのサポートが追加されました。 Y'CbCr は、ルマ成分 (Y') と 2 つの彩度成分 (Cb および Cr) に色を分離します。 多くの JPEG ファイルは、Y'CbCr カラー モデルを使用して画像データをネイティブに格納します。
人間の視覚システムは、luma よりも彩度の変化に対する感度が低く、Y'CbCr 形式では、luma に対して格納される彩度データの量を減らすことで、この感度の低下を利用できます。 これを実現するには、彩度とルマを別々の平面に格納し、各コンポーネント 平面を異なる解像度にスケーリングします。 この手法は、彩度サブサンプリングと呼ばれます。
彩度データとルマデータは別々に保存され、解像度が異なる場合があるため、WICは個別のルマとクロマピクセルフォーマットを定義します。 WIC では、チャネルあたり 8 ビットのデータがサポートされています。
WIC ピクセル形式
WIC のピクセル形式は、IHV との競合を回避するために GUID を使用して定義されます。 WIC は、ネイティブ ピクセル形式の GUID を参照するフレンドリ名を提供します。 WIC ピクセル形式の名前付け規則は次のとおりです。
[GUID_WICPixelFormat][1 ピクセルあたりのビット数][チャネルの順序][Storageの種類]
書式コンポーネント | 説明 |
---|---|
GUID_WICPixelFormat | すべての WIC ピクセル形式の説明的な識別。 すべての WIC ピクセルのフレンドリ名は、この文字列で始まります。 |
ピクセルあたりのビット数 | ピクセル形式に使用されるピクセルあたりのビット数 (bpp)。 |
チャネルの順序 | 形式の各チャネルのカラー チャネル モデルと順序。 |
ストレージの種類 | ピクセル形式に使用される数値エンコード。 既定のエンコードは符号なし整数です。 カラー モデル情報に従うものが何もない場合は、符号なし整数 (UINT) が暗黙的に指定されます。 FixedPoint と Float は、それぞれ固定小数点エンコードと浮動小数点エンコードを使用するピクセル形式を識別するために使用されます。 |
注意
n チャンネル形式の場合、[Channel Order] はカラー オーダーではなく、使用可能なチャネルの数を指定します。 たとえば、GUID_WICPixelFormat24bpp3Channelsでは、"3Channels" が [Channel Order] エントリである 3 つのカラー チャネルが提供されますが、チャネルの数のみが示され、順序は示されません。
たとえば、表示名GUID_WICPixelFormat24bppRGBは、ピクセル形式でピクセルあたり 24 ビットと RGB カラー モデルを使用することを意味します。 名前はストレージの種類を明示的に識別しないため、符号なし整数が暗黙的に指定されます。
WIC では、複数のピクセル形式がサポートされています。 次の表では、ビット深度、ピクセルあたりのビット数、数値エンコードなどの追加情報を提供しながら、色構造別に類似のピクセル形式をグループ化します。 各テーブルには、次の情報が含まれています。
- フレンドリ名。 ピクセル形式のフレンドリ名。
- チャネル数。 カラー チャネルの数。
- チャネルあたりのビット数。 チャネルあたりのビット数 (ビット深度)。
- ピクセルあたりのビット数。 埋め込みビットを含む、ピクセルあたりのビット数。
- Storage型。 画像データの数値エンコード。 この値には、符号なし整数 (UINT)、固定小数点番号 (FixedPoint)、または浮動小数点数 (Float) を指定できます。
注意
わかりやすくするために、このドキュメントでは、わかりやすい名前でのみピクセル形式を参照します。 ピクセル形式の実際の 16 進数の値は、wincodec.h/idl ファイルにあります。
未定義のピクセル形式
次の一覧は、ピクセル形式が未定義の場合、またはイメージ操作に重要でない場合に使用される汎用ピクセル形式を示しています。
- GUID_WICPixelFormatUndefined
- GUID_WICPixelFormatDontCare
インデックス付きピクセル形式
次の表に、WIC によって提供されるインデックス付きピクセル形式を示します。 これらの形式では、各ピクセルの値はカラー パレットのインデックスです。
フレンドリ名 | チャネル数 | ピクセルあたりのビット数 | ストレージ型 |
---|---|---|---|
GUID_WICPixelFormat1bppIndexed | 1 | 1 | UINT |
GUID_WICPixelFormat2bppIndexed | 1 | 2 | UINT |
GUID_WICPixelFormat4bppIndexed | 1 | 4 | UINT |
GUID_WICPixelFormat8bppIndexed | 1 | 8 | UINT |
パックされたビット ピクセル形式
次の表に、WIC によって提供されるパックされたビット形式を示します。 これらの形式では、カラー チャネル データはバイトアラインされません。
フレンドリ名 | チャネル数 | チャネルあたりのビット数 | ピクセルあたりのビット数 | ストレージ型 |
---|---|---|---|---|
GUID_WICPixelFormat16bppBGR555 | 3 | 5 | 16 | UINT |
GUID_WICPixelFormat16bppBGR565 | 3 | 5(B)/6(G)/5(R) | 16 | UINT |
GUID_WICPixelFormat16bppBGRA555 | 4 | 5(B)/5(G)/5(R)/1(A) | 16 | UINT |
GUID_WICPixelFormat32bppBGR101010 | 3 | 10 | 32 | UINT |
GUID_WICPixelFormat32bppRGBA1010102 | 4 | 10(R)/10(G)/10(B)/2(A) | 32 | UINT |
GUID_WICPixelFormat32bppRGBA1010102XR | 4 | 10(R)/10(G)/10(B)/2(A) | 32 | UINT |
GUID_WICPixelFormat32bppR10G10B10A2 | 4 | 10(R)/10(G)/10(B)/2(A) | 32 | UINT |
GUID_WICPixelFormat32bppR10G10B10A2HDR10 | 4 | 10(R)/10(G)/10(B)/2(A) | 32 | UINT |
GUID_WICPixelFormat32bppBGR101010形式とGUID_WICPixelFormat32bppRGBA1010102形式の場合、赤いチャネルは最下位ビットに格納されます。 GUID_WICPixelFormat32bppR10G10B10A2形式とGUID_WICPixelFormat32bppR10G10B10A2HDR10形式の場合、赤いチャネルは最も重要なビット (DXGI_FORMAT_R10G10B10A2_UNORMと同じレイアウト) で定義 されます。
GUID_WICPixelFormat32bppR10G10B10A2HDR10形式は、HDR10 (BT.2020 色空間と SMPTE ST.2084 EOTF) の 10 ビット ピクセル形式です。
グレースケールピクセル形式
次の表は、WIC によって提供されるグレースケール形式の一覧です。 これらの形式では、色データは灰色の濃淡を表します。
フレンドリ名 | チャネル数 | チャネルあたりのビット数 | ピクセルあたりのビット数 | ストレージ型 |
---|---|---|---|---|
GUID_WICPixelFormatBlackWhite | 1 | 1 | 1 | UINT |
GUID_WICPixelFormat2bppGray | 1 | 2 | 2 | UINT |
GUID_WICPixelFormat4bppGray | 1 | 4 | 4 | UINT |
GUID_WICPixelFormat8bppGray | 1 | 8 | 8 | UINT |
GUID_WICPixelFormat16bppGray | 1 | 16 | 16 | UINT |
GUID_WICPixelFormat16bppGrayFixedPoint | 1 | 16 | 16 | FixedPoint |
GUID_WICPixelFormat16bppGrayHalf | 1 | 16 | 16 | Float |
GUID_WICPixelFormat32bppGrayFloat | 1 | 32 | 32 | Float |
GUID_WICPixelFormat32bppGrayFixedPoint | 1 | 32 | 32 | FixedPoint |
RGB/BGR ピクセル形式
次の表は、WIC によって提供される RGB/BGR 形式の一覧です。 これらの形式は、プライマリ カラー データを赤 (R)、緑 (G)、青 (B) チャネルに分割します。 一部の形式で不透明度情報用に追加のアルファ (A) チャネルが提供されます。
フレンドリ名 | チャネル数 | チャネルあたりのビット数 | ピクセルあたりのビット数 | ストレージ型 |
---|---|---|---|---|
GUID_WICPixelFormat24bppRGB | 3 | 8 | 24 | UINT |
GUID_WICPixelFormat24bppBGR | 3 | 8 | 24 | UINT |
GUID_WICPixelFormat32bppBGR | 3 | 8 | 32 | UINT |
GUID_WICPixelFormat32bppRGBA | 4 | 8 | 32 | UINT |
GUID_WICPixelFormat32bppBGRA | 4 | 8 | 32 | UINT |
GUID_WICPixelFormat32bppRGBE* | 4 | 8 | 32 | Float |
GUID_WICPixelFormat32bppPRGBA | 4 | 8 | 32 | UINT |
GUID_WICPixelFormat32bppPBGRA | 4 | 8 | 32 | UINT |
GUID_WICPixelFormat48bppRGB | 3 | 16 | 48 | UINT |
GUID_WICPixelFormat48bppBGR | 3 | 16 | 48 | UINT |
GUID_WICPixelFormat48bppRGBFixedPoint | 3 | 16 | 48 | 固定 |
GUID_WICPixelFormat48bppBGRFixedPoint | 3 | 16 | 48 | 固定 |
GUID_WICPixelFormat48bppRGBHalf | 3 | 16 | 48 | Float |
GUID_WICPixelFormat64bppRGBA | 4 | 16 | 64 | UINT |
GUID_WICPixelFormat64bppBGRA | 4 | 16 | 64 | UINT |
GUID_WICPixelFormat64bppPRGBA | 4 | 16 | 64 | UINT |
GUID_WICPixelFormat64bppPBGRA | 4 | 16 | 64 | UINT |
GUID_WICPixelFormat64bppRGBFixedPoint | 3 | 16 | 64 | 固定 |
GUID_WICPixelFormat64bppRGBAFixedPoint | 4 | 16 | 64 | 固定 |
GUID_WICPixelFormat64bppBGRAFixedPoint | 4 | 16 | 64 | 固定 |
GUID_WICPixelFormat64bppRGBHalf | 3 | 16 | 64 | Float |
GUID_WICPixelFormat64bppRGBAHalf | 4 | 16 | 64 | Float |
GUID_WICPixelFormat96bppRGBFixedPoint | 3 | 32 | 96 | 固定 |
GUID_WICPixelFormat128bppRGBFloat | 3 | 32 | 128 | Float |
GUID_WICPixelFormat128bppRGBAFloat | 4 | 32 | 128 | Float |
GUID_WICPixelFormat128bppPRGBAFloat | 4 | 32 | 128 | Float |
GUID_WICPixelFormat128bppRGBFixedPoint | 3 | 32 | 128 | 固定 |
GUID_WICPixelFormat128bppRGBAFixedPoint | 4 | 32 | 128 | 固定 |
注意
*GUID_WICPixelFormat32bppRGBE形式では、3 つの 16 ビット浮動小数点値を 4 バイトでエンコードします。R、G、B チャネルの 3 つの符号なし 8 ビット仮数と共有 8 ビット指数。 この形式では、小さいピクセル表現で 16 ビットの浮動小数点精度が提供されます。
Windows 8および Windows 7 のプラットフォーム更新プログラム以降、WIC には、次の表に示す追加の形式が用意されています。
フレンドリ名 | チャネル数 | チャネルあたりのビット数 | ピクセルあたりのビット数 | ストレージ型 |
---|---|---|---|---|
GUID_WICPixelFormat32bppRGB | 3 | 8 | 32 | UINT |
GUID_WICPixelFormat64bppRGB | 3 | 16 | 64 | UINT |
GUID_WICPixelFormat96bppRGBFloat | 3 | 32 | 96 | FLOAT |
GUID_WICPixelFormat64bppPRGBAHalf | 4 | 16 | 64 | FLOAT |
CMYK ピクセル形式
次の表は、WIC によって提供される CMYK 形式の一覧です。 これらの形式では、原色データがシアン (C)、マゼンタ (M)、黄色 (Y)、黒 (K) チャネルに分離されます。
フレンドリ名 | チャネル数 | チャネルあたりのビット数 | ピクセルあたりのビット数 | ストレージ型 |
---|---|---|---|---|
GUID_WICPixelFormat32bppCMYK | 4 | 8 | 32 | UINT |
GUID_WICPixelFormat64bppCMYK | 4 | 16 | 64 | UINT |
GUID_WICPixelFormat40bppCMYKAlpha | 5 | 8 | 40 | UINT |
GUID_WICPixelFormat80bppCMYKAlpha | 5 | 16 | 80 | UINT |
n チャネルピクセル形式
次の表は、WIC によって提供される n チャネル形式の一覧です。 これらの形式には、イメージ データを格納するための未定義のカラー チャネルが多数用意されています。
フレンドリ名 | チャネル数 | チャネルあたりのビット数 | ピクセルあたりのビット数 | ストレージ型 |
---|---|---|---|---|
GUID_WICPixelFormat24bpp3Channels | 3 | 8 | 24 | UINT |
GUID_WICPixelFormat48bpp3Channels | 3 | 16 | 48 | UINT |
GUID_WICPixelFormat32bpp3ChannelsAlpha | 4 | 8 | 32 | UINT |
GUID_WICPixelFormat64bpp3ChannelsAlpha | 4 | 16 | 64 | UINT |
GUID_WICPixelFormat32bpp4Channels | 4 | 8 | 32 | UINT |
GUID_WICPixelFormat64bpp4Channels | 4 | 16 | 64 | UINT |
GUID_WICPixelFormat40bpp4ChannelsAlpha | 5 | 8 | 40 | UINT |
GUID_WICPixelFormat80bpp4ChannelsAlpha | 5 | 16 | 80 | UINT |
GUID_WICPixelFormat40bpp5Channels | 5 | 8 | 40 | UINT |
GUID_WICPixelFormat80bpp5Channels | 5 | 16 | 80 | UINT |
GUID_WICPixelFormat48bpp5ChannelsAlpha | 6 | 8 | 48 | UINT |
GUID_WICPixelFormat96bpp5ChannelsAlpha | 6 | 16 | 96 | UINT |
GUID_WICPixelFormat48bpp6Channels | 6 | 8 | 48 | UINT |
GUID_WICPixelFormat96bpp6Channels | 6 | 16 | 96 | UINT |
GUID_WICPixelFormat56bpp6ChannelsAlpha | 7 | 8 | 56 | UINT |
GUID_WICPixelFormat112bpp6ChannelsAlpha | 7 | 16 | 112 | UINT |
GUID_WICPixelFormat56bpp7Channels | 7 | 8 | 56 | UINT |
GUID_WICPixelFormat112bpp7Channels | 7 | 16 | 112 | UINT |
GUID_WICPixelFormat64bpp7ChannelsAlpha | 8 | 8 | 64 | UINT |
GUID_WICPixelFormat128bpp7ChannelsAlpha | 8 | 16 | 128 | UINT |
GUID_WICPixelFormat64bpp8Channels | 8 | 8 | 64 | UINT |
GUID_WICPixelFormat128bpp8Channels | 8 | 16 | 128 | UINT |
GUID_WICPixelFormat72bpp8ChannelsAlpha | 9 | 8 | 72 | UINT |
GUID_WICPixelFormat144bpp8ChannelsAlpha | 9 | 16 | 144 | UINT |
アルファのみピクセル形式
次の表は、WIC によって提供されるアルファのみの形式の一覧です。 この形式にはアルファ情報のみが含まれます。
フレンドリ名 | チャネル数 | チャネルあたりのビット数 | ピクセルあたりのビット数 | ストレージ型 |
---|---|---|---|---|
GUID_WICPixelFormat8bppAlpha | 1 | 8 | 32 | UINT |
Y'CbCr ピクセル形式
次の表は、WIC によって提供される Y'CbCr 形式の一覧です。 これらの形式では、原色データがルマ (Y)、青色のクロマ差 (Cb)、赤いチョマ差 (Cr) に分離されます。 これらの形式は、JPEG JFIF Y'CbCr ピクセル データを格納するように設計されていることに注意してください。
フレンドリ名 | チャネル数 | ピクセルあたりのビット数 | ストレージ型 |
---|---|---|---|
GUID_WICPixelFormat8bppY | 1 | 8 | UINT |
GUID_WICPixelFormat8bppCb | 1 | 8 | UINT |
GUID_WICPixelFormat8bppCr | 1 | 8 | UINT |
GUID_WICPixelFormat16bppCbCr | 2 | 16 | UINT |
色空間
ピクセル形式自体に色空間はありません。 一般に、色空間は、ビットマップのコンテキストに依存するピクセル値のセマンティック解釈です。 一部の画像は、イメージの色空間を定義する色のコンテキストを識別します。 色のコンテキストがない場合にのみ、色空間を推測する必要があります。
色コンテキスト情報は、 WIC の IWICColorContext インターフェイスによって定義されます。 イメージ フレームの色コンテキスト情報を取得するには、 GetColorContext メソッドを使用します。
画像の色空間情報がない場合、色空間推論の一般的なルールは、UINT RGB 形式とグレースケール形式で標準の RGB 色空間 (sRGB) が使用されるのに対し、固定小数点および浮動小数点 RGB およびグレースケール形式では拡張 RGB 色空間 (scRGB) が使用されます。 CMYK カラー モデルでは、RWOP カラー空間が使用されます。
ネイティブ イメージ形式
提供される各Windows WIC コーデックは、WIC ピクセル形式のサブセットをサポートしています。 コーデックごとに、サポートされているデコード形式が、サポートされているエンコード形式とは異なる場合があります。
画像をデコードするときに、データがデコーダーでサポートされていないピクセル形式でネイティブに格納されている場合は、サポートされている形式に変換されます。 出力ピクセル形式を確認するには、 IWICBitmapFrameDecode::GetPixelFormat を呼び出します。
イメージをエンコードする場合は、 IWICBitmapFrameEncode::SetPixelFormat を使用して、エンコーダーで特定のピクセル形式を使用するように要求します。 エンコーダーは、サポートされている最も近いピクセル形式を返します。これは、要求されたものとは異なる場合があります。
次の表は、提供される各WINDOWS WIC コーデックでサポートされるピクセル形式を示しています。
BMP ネイティブ コーデック
デコーダーのピクセル形式 | エンコーダーのピクセル形式 |
---|---|
GUID_WICPixelFormat1bppIndexed | GUID_WICPixelFormat1bppIndexed |
GUID_WICPixelFormat4bppIndexed | GUID_WICPixelFormat4bppIndexed |
GUID_WICPixelFormat8bppIndexed | GUID_WICPixelFormat8bppIndexed |
GUID_WICPixelFormat16bppBGR555 | GUID_WICPixelFormat16bppBGR555 |
GUID_WICPixelFormat16bppBGR565 | GUID_WICPixelFormat16bppBGR565 |
GUID_WICPixelFormat24bppBGR | GUID_WICPixelFormat24bppBGR |
GUID_WICPixelFormat32bppBGR | GUID_WICPixelFormat32bppBGR |
GUID_WICPixelFormat32bppBGRA* | GUID_WICPixelFormat32bppBGRA* |
GUID_WICPixelFormat64bppRGBAFixedPoint | GUID_WICPixelFormat32bppPBGRA |
GUID_WICPixelFormat64bppRGBAFixedPoint | |
GUID_WICPixelFormat64bppBGRAFixedPoint |
注意
GUID_WICPixelFormat32bppBGRAは、Windows 8、Windows 7 以降のプラットフォーム更新プログラムでのみサポートされます。
- この形式にエンコードするには、 EnableV5Header32bppBGRA エンコーダー オプションを使用します。 BMP は BITMAPV5HEADER ヘッダーで書き込まれます。
- ファイルに BITMAPV5HEADER がある場合は、GUID_WICPixelFormat32bppBGRAとしてデコードされます。
GIF ネイティブ コーデック
デコーダーのピクセル形式 | エンコーダーのピクセル形式 |
---|---|
GUID_WICPixelFormat8bppIndexed | GUID_WICPixelFormat8bppIndexed |
ICO ネイティブ コーデック
デコーダーのピクセル形式 | エンコーダーのピクセル形式 |
---|---|
GUID_WICPixelFormat32bppBGRA |
JPEG ネイティブ コーデック
デコーダーのピクセル形式 | エンコーダーのピクセル形式 |
---|---|
GUID_WICPixelFormat8bppGray | GUID_WICPixelFormat8bppGray |
GUID_WICPixelFormat24bppBGR | GUID_WICPixelFormat24bppBGR |
GUID_WICPixelFormat32bppCMYK | GUID_WICPixelFormat32bppCMYK |
PNG ネイティブ コーデック
デコーダーのピクセル形式 | エンコーダーのピクセル形式 |
---|---|
GUID_WICPixelFormat1bppIndexed | GUID_WICPixelFormat1bppIndexed |
GUID_WICPixelFormat2bppIndexed | GUID_WICPixelFormat2bppIndexed |
GUID_WICPixelFormat4bppIndexed | GUID_WICPixelFormat4bppIndexed |
GUID_WICPixelFormat8bppIndexed | GUID_WICPixelFormat8bppIndexed |
GUID_WICPixelFormatBlackWhite | GUID_WICPixelFormatBlackWhite |
GUID_WICPixelFormat2bppGray | GUID_WICPixelFormat2bppGray |
GUID_WICPixelFormat4bppGray | GUID_WICPixelFormat4bppGray |
GUID_WICPixelFormat8bppGray | GUID_WICPixelFormat8bppGray |
GUID_WICPixelFormat16bppGray | GUID_WICPixelFormat16bppGray |
GUID_WICPixelFormat24bppBGR | GUID_WICPixelFormat24bppBGR |
GUID_WICPixelFormat32bppBGRA | GUID_WICPixelFormat32bppBGRA |
GUID_WICPixelFormat48bppRGB | GUID_WICPixelFormat48bppRGB |
GUID_WICPixelFormat64bppRGBA | GUID_WICPixelFormat48bppBGR |
GUID_WICPixelFormat64bppRGBA | |
GUID_WICPixelFormat64bppBGRA |
TIFF ネイティブ コーデック
デコーダーのピクセル形式 | エンコーダーのピクセル形式 |
---|---|
GUID_WICPixelFormat1bppIndexed | GUID_WICPixelFormat1bppIndexed |
GUID_WICPixelFormat4bppIndexed | GUID_WICPixelFormat4bppIndexed |
GUID_WICPixelFormat8bppIndexed | GUID_WICPixelFormat8bppIndexed |
GUID_WICPixelFormatBlackWhite | GUID_WICPixelFormatBlackWhite |
GUID_WICPixelFormat4bppGray | GUID_WICPixelFormat4bppGray |
GUID_WICPixelFormat8bppGray | GUID_WICPixelFormat8bppGray |
GUID_WICPixelFormat16bppGray | GUID_WICPixelFormat16bppGray |
GUID_WICPixelFormat32bppGrayFloat | GUID_WICPixelFormat24bppBGR |
GUID_WICPixelFormat24bppBGR | GUID_WICPixelFormat32bppBGRA |
GUID_WICPixelFormat32bppBGRA | GUID_WICPixelFormat32bppCMYK |
GUID_WICPixelFormat32bppPBGRA | GUID_WICPixelFormat48bppRGB |
GUID_WICPixelFormat48bppRGB | GUID_WICPixelFormat64bppRGBA |
GUID_WICPixelFormat32bppCMYK | |
GUID_WICPixelFormat40bppCMYKAlpha | |
GUID_WICPixelFormat64bppRGBA | |
GUID_WICPixelFormat64bppPRGBA | |
GUID_WICPixelFormat64bppCMYK | |
GUID_WICPixelFormat80bppCMYKAlpha | |
GUID_WICPixelFormat96bppRGBFloat* | |
GUID_WICPixelFormat128bppRGBAFloat | |
GUID_WICPixelFormat128bppPRGBAFloat |
注意
GUID_ WICPixelFormat96bppRGBFloat は、Windows 8、Windows 7 以降のプラットフォーム更新プログラムでのみサポートされています。
JPEG-XR ネイティブ コーデック
デコーダーのピクセル形式 | エンコーダーのピクセル形式 |
---|---|
GUID_WICPixelFormatBlackWhite | GUID_WICPixelFormatBlackWhite |
GUID_WICPixelFormat8bppGray | GUID_WICPixelFormat8bppGray |
GUID_WICPixelFormat16bppBGR555 | GUID_WICPixelFormat16bppBGR555 |
GUID_WICPixelFormat16bppGray | GUID_WICPixelFormat16bppGray |
GUID_WICPixelFormat24bppBGR | GUID_WICPixelFormat24bppBGR |
GUID_WICPixelFormat24bppRGB | GUID_WICPixelFormat24bppRGB |
GUID_WICPixelFormat32bppBGR | GUID_WICPixelFormat32bppBGR |
GUID_WICPixelFormat32bppBGRA | GUID_WICPixelFormat32bppBGRA |
GUID_WICPixelFormat48bppRGBFixedPoint | GUID_WICPixelFormat48bppRGBFixedPoint |
GUID_WICPixelFormat16bppGrayFixedPoint | GUID_WICPixelFormat16bppGrayFixedPoint |
GUID_WICPixelFormat32bppBGR101010 | GUID_WICPixelFormat32bppBGR101010 |
GUID_WICPixelFormat48bppRGB | GUID_WICPixelFormat48bppRGB |
GUID_WICPixelFormat64bppRGBA | GUID_WICPixelFormat64bppRGBA |
GUID_WICPixelFormat96bppRGBFixedPoint | GUID_WICPixelFormat96bppRGBFixedPoint |
GUID_WICPixelFormat96bppRGBFixedPoint | GUID_WICPixelFormat128bppRGBAFloat |
GUID_WICPixelFormat128bppRGBFloat | GUID_WICPixelFormat128bppRGBFloat |
GUID_WICPixelFormat32bppCMYK | GUID_WICPixelFormat32bppCMYK |
GUID_WICPixelFormat64bppRGBAFixedPoint | GUID_WICPixelFormat64bppRGBAFixedPoint |
GUID_WICPixelFormat128bppRGBAFixedPoint | GUID_WICPixelFormat128bppRGBAFixedPoint |
GUID_WICPixelFormat64bppCMYK | GUID_WICPixelFormat64bppCMYK |
GUID_WICPixelFormat24bpp3Channels | GUID_WICPixelFormat24bpp3Channels |
GUID_WICPixelFormat32bpp4Channels | GUID_WICPixelFormat32bpp4Channels |
GUID_WICPixelFormat40bpp5Channels | GUID_WICPixelFormat40bpp5Channels |
GUID_WICPixelFormat48bpp6Channels | GUID_WICPixelFormat48bpp6Channels |
GUID_WICPixelFormat56bpp7Channels | GUID_WICPixelFormat56bpp7Channels |
GUID_WICPixelFormat64bpp8Channels | GUID_WICPixelFormat64bpp8Channels |
GUID_WICPixelFormat48bpp3Channels | GUID_WICPixelFormat48bpp3Channels |
GUID_WICPixelFormat64bpp4Channels | GUID_WICPixelFormat64bpp4Channels |
GUID_WICPixelFormat80bpp5Channels | GUID_WICPixelFormat80bpp5Channels |
GUID_WICPixelFormat96bpp6Channels | GUID_WICPixelFormat96bpp6Channels |
GUID_WICPixelFormat112bpp7Channels | GUID_WICPixelFormat112bpp7Channels |
GUID_WICPixelFormat128bpp8Channels | GUID_WICPixelFormat128bpp8Channels |
GUID_WICPixelFormat40bppCMYKAlpha | GUID_WICPixelFormat40bppCMYKAlpha |
GUID_WICPixelFormat80bppCMYKAlpha | GUID_WICPixelFormat80bppCMYKAlpha |
GUID_WICPixelFormat32bpp3ChannelsAlpha | GUID_WICPixelFormat32bpp3ChannelsAlpha |
GUID_WICPixelFormat64bpp7ChannelsAlpha | GUID_WICPixelFormat40bpp4ChannelsAlpha |
GUID_WICPixelFormat72bpp8ChannelsAlpha | GUID_WICPixelFormat48bpp5ChannelsAlpha |
GUID_WICPixelFormat64bpp3ChannelsAlpha | GUID_WICPixelFormat56bpp6ChannelsAlpha |
GUID_WICPixelFormat80bpp4ChannelsAlpha | GUID_WICPixelFormat64bpp7ChannelsAlpha |
GUID_WICPixelFormat96bpp5ChannelsAlpha | GUID_WICPixelFormat72bpp8ChannelsAlpha |
GUID_WICPixelFormat112bpp6ChannelsAlpha | GUID_WICPixelFormat64bpp3ChannelsAlpha |
GUID_WICPixelFormat128bpp7ChannelsAlpha | GUID_WICPixelFormat80bpp4ChannelsAlpha |
GUID_WICPixelFormat144bpp8ChannelsAlpha | GUID_WICPixelFormat96bpp5ChannelsAlpha |
GUID_WICPixelFormat64bppRGBAHalf | GUID_WICPixelFormat112bpp6ChannelsAlpha |
GUID_WICPixelFormat48bppRGBHalf | GUID_WICPixelFormat128bpp7ChannelsAlpha |
GUID_WICPixelFormat32bppRGBE | GUID_WICPixelFormat144bpp8ChannelsAlpha |
GUID_WICPixelFormat16bppGrayHalf | GUID_WICPixelFormat64bppRGBAHalf |
GUID_WICPixelFormat32bppGrayFixedPoint | GUID_WICPixelFormat48bppRGBHalf |
GUID_WICPixelFormat64bppRGBFixedPoint | GUID_WICPixelFormat32bppRGBE |
GUID_WICPixelFormat128bppRGBFixedPoint | GUID_WICPixelFormat16bppGrayHalf |
GUID_WICPixelFormat64bppRGBHalf | GUID_WICPixelFormatBlackWhite |
DDS ネイティブ コーデック
デコーダーのピクセル形式 | エンコーダーのピクセル形式 |
---|---|
GUID_WICPixelFormat32bppBGRA | GUID_WICPixelFormat32bppBGRA |
GUID_WICPixelFormat32bppPBGRA | GUID_WICPixelFormat32bppPBGRA |
注意
DDS Windows提供されるコーデックでは、次のDXGI_FORMAT値を使用してエンコードされた DDS ファイルがサポートされます。
- DXGI_FORMAT_BC1_UNORM
- DXGI_FORMAT_BC2_UNORM
- DXGI_FORMAT_BC3_UNORM
これらはデコードされ、GUID_WICPixelFormat32bppBGRAまたはGUID_WICPixelFormat32bppPBGRAとしてエンコードされます。 詳細については、 DDS 形式の概要を参照してください。
ピクセル形式の機能拡張
カスタム イメージ形式では、YCbCr (YUV) や YCCK (Y/Cb/Cr/K) など、WIC によってネイティブに提供されないピクセル形式を使用できます。 WIC は、組み込みピクセル形式とアドイン ピクセル形式の両方が同じイメージング パイプライン内で動作することを許可する機能拡張モデルを提供します。 これらのピクセル形式を WIC イメージング パイプラインと統合するには、アドインのピクセル形式を 1 つ以上のネイティブ ピクセル形式に変換するピクセル形式コンバーターを作成する必要があります。 フォーマット コンバーターを構築するためのメイン インターフェイスは IWICFormatConverter です。
関連トピック