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

このトピックでは、WINDOWS Imaging Component (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 強度を表し、すべてのカラー チャネルがゼロの場合は黒になります。 同様に、最大値は完全な強度を表し、すべてのカラー チャネルが完全な強度の場合は白を実現します。 少し深さが 8 の場合、UINT はカラー チャネルごとに 256 の一意の値を提供します (0 から 255)。 16 ビット UINT は、カラー チャネルごとに 65,536 の一意の値を提供します (0 - 65,535)。

さらに、WIC では固定点形式と浮動小数点形式がサポートされています。 これらの形式は、各カラー チャネルの数値範囲全体が可視範囲よりも大きいので、より大きな動的範囲をサポートします。 その結果、画像情報を失わずに、画像処理の中間手順の間に、表示される範囲の上または下で色を調整できます。

Fixed-Pointエンコード

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

32 ビットの固定ポイント値は s7.24 として解釈されます。符号ビット、7 つの整数ビット、および 24 個の小数部ビット。 この解釈を使用して、128.0 ~ +127.999...は、符号付き整数値 (0x01000000) で表される符号付き整数値で表16777216できます。

カラー チャネル

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

RGB/BGR カラー モデル

RGB および BGR 形式では、加法カラー モデルの色を記述します。 画像を記述する最も一般的な方法は、赤 (R)、緑 (G)、青 (B) を表す 3 つの個別のカラー チャネルを使用する方法です。 WIC では、赤-緑-青 (RGB) または青緑赤 (BGR) のいずれかの順序で、これら 3 つのチャネルがサポートされています。 これは、各カラー チャネルがシーケンシャル ビット ストリーム内に表示される順序です。 たとえば、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 は、32 および 64 ビット/ピクセル (bpp) の CMYK のピクセル形式を提供します。

WIC では、標準の CMYK カラー モデルに加えて、アルファを含む 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 Color モデル

WIC では、JPEG JFIF Y'CbCr color モデルのサポートが追加されます。 Y'CbCr は、色をルミナンスコンポーネント (Y) と2つのクロマ成分 (Cb と Cr) に分割します。 多くの JPEG ファイルは、Y'CbCr color モデルを使用してイメージデータをネイティブに格納します。

人間のビジュアルシステムは、ルミナンスよりも彩度の変化には影響がありません。また、Y'CbCr 形式では、ルミナンスを基準として格納されているクロマデータの量を減らすことで、このような感度が低くなります。 これを実現するには、クロマとルミナンスを別々の平面に格納し、各コンポーネント平面を別の解像度にスケーリングします。 この手法は、クロマサブサンプリングと呼ばれます。

彩度とルミナンスのデータは個別に格納されており、解像度が異なる場合があるため、WIC では、別個のルミナンスおよびクロマピクセル形式が定義されます。 WIC は、チャネルあたり8ビットのデータをサポートします。

WIC ピクセル形式

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

[GUID _ WICPixelFormat ] [ ビット/ピクセル ] [ チャネル順序 ] [ Storage 種類]

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

注意

N チャネル形式の場合、 [ チャネルの順序では ] カラーの順序は指定されませんが、使用できるチャネルの数が指定されます。 たとえば、GUID _ WICPixelFormat24bpp3Channels は3つのカラーチャネルを提供します。ここで、"3Channels" は [ チャネル注文 ] エントリですが、注文ではなくチャネル数のみを示します。

たとえば、フレンドリ名 GUID WICPixelFormat24bppRGB は、ピクセル _ 形式がピクセルあたり24ビット、RGB カラーモデルを使用することを意味します。 名前はストレージ型を明示的に識別しないので、符号なし整数が暗黙的に指定されます。

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

  • フレンドリ名。 ピクセル形式のフレンドリ名。
  • チャネル数。 カラーチャネルの数。
  • チャネルあたりのビット数。 チャネルあたりのビット数 (ビット深度)。
  • ピクセルあたりのビット数。 埋め込みビットを含む、ピクセルあたりのビット数。
  • 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 のプラットフォーム更新プログラムでは、次の表に示す追加の形式が使用できます。

フレンドリ名 チャネル数 チャネルあたりのビット数 ピクセルあたりのビット数 ストレージ型
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)、blue クロマ差 (Cb)、および red choma (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 コーデックの一部をサポートしています。 各コーデックでサポートされているデコード形式は、サポートされているエンコード形式とは異なる場合があります。

イメージをデコードする場合、データがデコーダーでサポートされていないピクセル形式でネイティブに格納されると、サポートされている形式に変換されます。 出力ピクセル形式を決定するには、 IWICBitmapFrameDecode:: Getpixel formatを呼び出します。

イメージをエンコードする場合は、 IWICBitmapFrameEncode:: Setpixel format を使用して、エンコーダーが特定のピクセル形式を使用するように要求します。 エンコーダーは、サポートされている最も近いピクセル形式を返します。これは、要求されたものとは異なる場合があります。

次の表は、提供されている各 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 encoder オプションを使用します。 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 _ WICPixelFormat32bppQPGRA GUID _ WICPixelFormat32bppQPGRA

注意

指定されたコーデックWindows DDS では、次の DXGI FORMAT 値を使用してエンコードされた DDS ファイルが _ サポートされます。

  • DXGI _ 形式 _ BC1 _ UNORM
  • DXGI _ 形式 _ BC2 _ UNORM
  • DXGI _ 形式 _ BC3 _ UNORM

これらは、GUID _ WICPixelFormat32bppBGRA または GUID _ WICPixelFormat32bppQPGRA としてデコードおよびエンコードされます。 詳細については 、「DDS 形式の概要」を参照してください

ピクセル形式の機能拡張

カスタム イメージ形式では、WIC によってネイティブに提供されないピクセル形式 (YCbCr (YUV) や YCCK (Y/Cb/Cr/K) など) を使用できます。 WIC は、組み込みピクセル形式とアドインピクセル形式の両方が同じイメージング パイプライン内で動作する機能拡張モデルを提供します。 これらのピクセル形式を WIC イメージング パイプラインと統合するには、アドインのピクセル形式を 1 つ以上のネイティブ ピクセル形式に変換するピクセル形式コンバーターを作成する必要があります。 フォーマット コンバーターを構築する主なインターフェイスは 、IWICFormatConverter です

概念

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

WIC GUID と CLSID

その他のリソース

コーデックを作成するWIC-Enabled方法

HD Photo Specification 1.0