次の方法で共有


IWICPlanarBitmapFrameEncode::WritePixels メソッド (wincodec.h)

ソース プレーンからエンコードされた形式に行を書き込みます。

構文

HRESULT WritePixels(
       UINT           lineCount,
  [in] WICBitmapPlane *pPlanes,
       UINT           cPlanes
);

パラメーター

lineCount

型: UINT

エンコードする行数。 WIC Jpeg 固有の行数制限については、「解説」セクションを参照してください。

[in] pPlanes

種類: WICBitmapPlane*

エンコードされた各コンポーネント プレーンのソース バッファーを指定します。

cPlanes

型: UINT

pPlanes パラメーターで指定されたコンポーネント プレーンの数。

戻り値

種類: HRESULT

平面とソース四角形が要件を満たしていない場合、このメソッドは WINCODEC_ERR_IMAGESIZEOUTOFRANGEで失敗します。

IWICBitmapSource 形式がエンコーダーの要件を満たしていない場合、このメソッドは WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT で失敗します。

注釈

連続する WritePixels 呼び出しは、出力イメージにスキャンラインを順番に追加すると想定されます。 IWICBitmapFrameEncode::InitializeIWICBitmapFrameEncode::SetSizeおよび IWICBitmapFrameEncode::SetPixelFormat は、このメソッドの前に呼び出す必要があります。または失敗します。

IWICBitmapFrameEncode::SetPixelFormat を介して設定されたインターリーブピクセル形式とコーデック固有のエンコード パラメーターによって、サポートされている平面形式が決まります。

WIC JPEG エンコーダー: QueryInterface を使用して、WIC JPEG IWICBitmapFrameEncode 実装からこのインターフェイスを取得できます。 この方法を使用して WIC JPEG エンコーダーで Y'CbCr データをエンコードする場合、フレームの作成時にエンコーダー オプションを使用してクロマ サブサンプリングを構成できます。 詳細については、「 エンコードの概要 」と 「IWICBitmapEncoder::CreateNewFrame 」を参照してください。

構成されたクロマ サブサンプリングに応じて、lineCount パラメーターには次の制限があります。

クロマ サブサンプリング 行数の制限 クロマ平面の幅 クロマ平面の高さ
4:2:0 呼び出しがイメージの最後のスキャンラインをカバーしない限り、2 の倍数 lumaWidth / 2 最も近い整数に切り上げます。 lumaHeight / 2 最も近い整数に切り上げます。
4:2:2 Any lumaWidth / 2 最も近い整数に切り上げます。 Any
4:4:4 Any Any Any
4:4:0 呼び出しがイメージの最後のスキャンラインをカバーしない限り、2 の倍数 Any 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

こちらもご覧ください

エンコードの概要

IWICBitmapEncoder::CreateNewFrame

IWICPlanarBitmapFrameEncode