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

このトピックでは、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 では固定小数点形式と浮動小数点形式がサポートされます。 各カラー チャネルの数値範囲全体が可視範囲より大きいため、これらの形式ではより大きなダイナミック レンジがサポートされます。 その結果、画像処理の中間段階で、画像情報を失うことなく、可視範囲の上下に色を調整できます。

固定小数点数値エンコード

16 ビット固定小数点値は、s2.13 (符号ビット、2 つの整数ビット、および 13 個の小数ビット) として解釈されます。 この解釈を使用すると、1.0 の値が符号付き整数値 8192 (0x2000) で表される -4.0 から +3.999 までの数値範囲を表すことができます。

32 ビット固定小数点値は、s7.24 (符号ビット、7 つの整数ビット、および 24 個の少数ビット) として解釈されます。 この解釈を使用すると、1.0 の値が符号付き整数値 16777216 (0x01000000) で表される −128.0 から +127.999 までの数値範囲を表すことができます。

カラー チャネル

ピクセル形式のカラー チャネルでは、ビットマップの画像データ内の各色のメモリ レイアウトが定義されます。 現在のデジタル画像にはさまざまなカラー チャネル構造が共通しており、WIC ではこれらの多くがサポートされています。

RGB/BGR カラー モデル

RGB 形式と BGR 形式は、加法カラー モデルで色を記述します。 画像を記述する最も一般的な方法は、赤 (R)、緑 (G)、青 (B) の色を表す 3 つの個別のカラー チャネルを使用することです。 WIC では、これら 3 つのチャネルを、赤/緑/青 (RGB) または青/緑/赤 (BGR) の順序でサポートしています。 これは、各カラー チャネルがシーケンシャル ビット ストリーム内に出現する順序です。 たとえば、GUID_WICPixelFormat32bppRGB 形式では、各ピクセルの幅は 32 ビットです。 赤チャネルは、メモリ内の最初の (最下位の) バイトで、その後に緑、青の順で続きます。 逆に、GUID_WICPixelFormat32bppBGR 形式では、カラー チャネルは逆の順序になります。 WIC では、GUID_WICPixelFormat16bppBGR555 などの特殊なパックされたビット形式など、多数の RGB/BGR 形式がサポートされています。

Note

特殊なパックされた BGR ビット形式のカラー チャネルは、一般的なピクセル形式のカラー チャネルのように、8 の倍数ではありません。 これは、チャネル値がバイトにアラインされていないことを意味します。 パックされたビット カラー チャネルを読み取る場合は注意が必要です。

RGB および BGR 形式に加えて、WIC では、アルファ (A) チャネルをサポートする RGB および BGR ピクセル形式も提供されます。 アルファ チャネルでは、ピクセルの不透明度データが提供されます。 アルファ チャネルが追加された形式である場合、アルファ チャネルは通常、カラー チャネルの順序の最後に表示されます。 たとえば、ピクセル形式の GUID_WICPixelFormat32bppBGRA では、バイト順は青、緑、赤で、その後にアルファ チャネルが続きます。

WIC では、事前に乗算された (P) アルファ RGB ピクセル形式もサポートされています。 一般的な RGBA ピクセル形式では、赤、緑、青の色の値が画像の実際の色の値です。 標準の RGBA 形式で複合イメージを作成するには、前景イメージのアルファ値に、背景イメージの色に追加する前に、赤、緑、青の各チャネルを乗算する必要があります。 事前に乗算されたアルファ RGB ピクセル形式では、各カラー チャネルに既にアルファ値が乗算されています。 これにより、アルファ チャネル データを使用した画像合成のより効率的な方法が提供されます。 PRGBA/PBGRA ピクセル形式で各チャネルの True Color 値を取得するには、色の値をアルファ値で除算することでアルファ チャネル乗算を反転させる必要があります。

CMYK カラー モデル

CMYK は、印刷に使用される減算カラー モデルです。 CMYK モデルで生成される色は、吸収されずに反射される光によって生成されます。 CMYK は、シアン (C)、マゼンタ (M)、黄 (Y)、黒 (K) の 4 つのチャネル モデルです。 4 つのカラー チャネルがすべて最大値である場合、結果は黒になります。 RGB/BGR カラー モデルと同様に、シーケンシャル ビット ストリーム内のバイト順はピクセル形式の名前によって指定されます。 たとえば、ピクセル形式の GUID_WICPixelFormat32bppCMYK では、各ピクセルは 32 ビットで構成されます。 最初のバイトにはシアン値が含まれており、その後にマゼンタ、黄、黒と続きます。 WIC では、CMYK のピクセル形式がピクセルあたり 32 bpp (ピクセルあたりのビット数) および 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 カラー モデルを使用して画像データをネイティブに格納します。

人間の視覚系は、輝度よりも彩度の変化に対して感度が低く、Y'CbCr 形式では、輝度に対して格納される彩度データの量を減らすことで、この感度の低下を利用できます。 これは、彩度と輝度を別々の平面に格納し、各コンポーネント平面を異なる解像度にスケーリングすることで実現されます。 このプラクティスは、彩度サブサンプリングと呼ばれます。

彩度データと輝度データは別々に格納され、解像度が異なる場合があるため、WIC では個別の輝度ピクセル形式と彩度ピクセル形式が定義されます。 WIC では、チャネルあたり 8 ビットのデータがサポートされます。

WIC ピクセル形式

WIC ピクセル形式は、IHV との不整合を回避するために GUID を使用して定義されます。 WIC では、ネイティブ ピクセル形式の GUID を参照するフレンドリ名が提供されます。 WIC ピクセル形式の名前付け規則は次のとおりです。

[GUID_WICPixelFormat][ピクセルあたりのビット数][チャネルの順序][ストレージの種類]

形式コンポーネント 説明
GUID_WICPixelFormat すべての WIC ピクセル形式のわかりやすい識別。 すべての WIC ピクセルのフレンドリ名は、この文字列で始まります。
ピクセルあたりのビット数 ピクセル形式に使用されるピクセルあたりのビット数 (bpp)。
チャネル順 カラー チャネル モデルと、形式の各チャネルの順序。
ストレージの種類 ピクセル形式に使用される数値エンコード。 既定のエンコードは符号なし整数です。 カラー モデル情報の後に何も続いていない場合は、符号なし整数 (UINT) が暗黙的に指定されます。 FixedPoint と Float は、それぞれ固定小数点エンコードと浮動小数点エンコードを使用するピクセル形式を識別するために使用されます。

Note

n チャネル形式の場合、[チャネル順] では、色の順序ではなく、使用可能なチャネル数が指定されます。 たとえば、GUID_WICPixelFormat24bpp3Channels では、"3Channels" が [チャネル順] エントリである 3 つのカラー チャネルが提供されますが、チャネル数のみが示され、順序は示されません。

たとえば、表示名 GUID_WICPixelFormat24bppRGB は、ピクセル形式で 1 ピクセルあたり 24 ビットを使用し、RGB カラー モデルを使用することを意味します。 名前は記憶域の種類を明示的に識別しないため、符号なし整数が暗黙的に指定されます。

WIC では、いくつかのピクセル形式がサポートされています。 次の表では、類似したピクセル形式が色構造別にグループ化され、ビット深度、ピクセルあたりのビット数、数値エンコードなどの追加情報が提供されます。 各テーブルには、次の情報が格納されます。

  • フレンドリ名。 ピクセル形式のフレンドリ名。
  • チャネル数。 カラー チャネル数。
  • チャネルあたりのビット数。 チャネルあたりのビット数 (ビット深度)。
  • ピクセルあたりのビット数。 パディング ビットなど、ピクセルあたりのビット数。
  • 記憶域の種類。 画像データの数値エンコード。 この値には、符号なし整数 (UINT)、固定小数点数 (FixedPoint)、または浮動小数点数 (Float) を指定できます。

Note

わかりやすくするために、このドキュメントでは、表示名によってのみピクセル形式を参照します。 ピクセル形式の実際の 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 固定

Note

*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、およびグレースケール形式では拡張 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

Note

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

Note

GUID_ WICPixelFormat96bppRGBFloat は、Windows 8、Windows 7 用プラットフォーム更新プログラム以降でのみサポートされています。

HEIF ネイティブ コーデック

深度のみとゲインのみの形式。 これらのピクセル形式の GUID を使うと、フォト ビューアーで HEIF 画像の代替表現を取得できるようになります。

デコーダーのピクセル形式 エンコーダーのピクセル形式
GUID_WICPixelFormat8bppDepth GUID_WICPixelFormat8bppDepth
GUID_WICPixelFormat8bppGain GUID_WICPixelFormat8bppGain

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

Note

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 です。

Conceptual

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

WIC GUIDs と CLSID

その他のリソース

WIC 対応コーデックを書き込む方法

HD Photo フォーマットの概要