ネイティブ ピクセル形式の概要

このトピックでは、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 です

概念

Windowsイメージングコンポーネントの概要

WIC GUID と CLSID

その他のリソース

WIC-Enabled CODEC を記述する方法

HD 写真仕様 1.0