IWICPlanarBitmapFrameEncode::WriteSource メソッド (wincodec.h)
ソース プレーンからエンコードされた形式に行を書き込みます。
構文
HRESULT WriteSource(
[in] IWICBitmapSource **ppPlanes,
UINT cPlanes,
WICRect *prcSource
);
パラメーター
[in] ppPlanes
種類: IWICBitmapSource**
イメージ プレーンを表す IWICBitmapSource の 配列を指定します。
cPlanes
型: UINT
planes パラメーターで指定されたコンポーネント プレーンの数。
prcSource
種類: WICRect*
IWICBitmapSource プレーンからエンコードするピクセルのソース四角形。 Null は、ソース全体を示します。 ソースの rect の幅は 、SetSize によって設定された幅と一致する必要があります。 繰り返し の WriteSource 呼び出しは、累積されたソースの合計の rect の高さが SetSize によって設定されたのと同じであれば行うことができます。
戻り値
種類: HRESULT
平面とソース四角形が要件を満たしていない場合、このメソッドは WINCODEC_ERR_IMAGESIZEOUTOFRANGEで失敗します。
IWICBitmapSource 形式がエンコーダーの要件を満たしていない場合、このメソッドは WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT で失敗します。
解説
連続する WriteSource 呼び出しは、出力イメージにスキャンラインを順番に追加すると想定されます。 IWICBitmapFrameEncode::Initialize、 IWICBitmapFrameEncode::SetSize 、 および IWICBitmapFrameEncode::SetPixelFormat は、このメソッドの前に呼び出す必要があります。または失敗します。
IWICBitmapFrameEncode::SetPixelFormat を介して設定されたインターリーブピクセル形式とコーデック固有のエンコード パラメーターによって、サポートされている平面形式が決まります。
WIC JPEG エンコーダー: QueryInterface を使用して、WIC JPEG IWICBitmapFrameEncode 実装からこのインターフェイスを取得できます。 この方法を使用して WIC JPEG エンコーダーで Y'CbCr データをエンコードする場合、フレームの作成時にエンコーダー オプションを使用してクロマ サブサンプリングを構成できます。 詳細については、「 エンコードの概要 」と 「IWICBitmapEncoder::CreateNewFrame 」を参照してください。
構成されたクロマ サブサンプリングに応じて、lineCount パラメーターには次の制限があります。
クロマ サブサンプリング | X 座標 | Y 座標 | クロマの幅 | クロマの高さ |
---|---|---|---|---|
4:2:0 | 2 の倍数 | 2 の倍数 | lumaWidth / 2 最も近い整数に切り上げます。 | lumaHeight / 2 最も近い整数に切り上げます。 |
4:2:2 | 2 の倍数 | Any | lumaWidth / 2 最も近い整数に切り上げます。 | Any |
4:4:4 | Any | Any | Any | Any |
4:4:0 | Any | 2 の倍数 | lumaWidth | llumaHeight / 2 最も近い整数に切り上げます。 |
スキャンラインの全幅をエンコードし、ビットマップ ソースの幅を平面構成と一致させる必要があります。
さらに、ピクセル形式が IWICBitmapFrameEncode::SetPixelFormat を使用して設定されている場合は、GUID_WICPixelFormat24bppBGRする必要があります。
このメソッドに渡されるビットマップ ソースのサポートされているピクセル形式は次のとおりです。
平面数 | 平面 1 | 平面 2 | 平面 3 |
---|---|---|---|
3 | GUID_WICPixelFormat8bppY | GUID_WICPixelFormat8bppCb | GUID_WICPixelFormat8bppCr |
2 | GUID_WICPixelFormat8bppY | GUID_WICPixelFormat16bppCbCr | N/A |
要件
サポートされている最小のクライアント | Windows 8.1 [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2012 R2 [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | wincodec.h |
Library | Windowscodecs.lib |
[DLL] | Windowscodecs.dll |