IWICProgressiveLevelControl::SetCurrentLevel メソッド (wincodec.h)
CopyPixels の次の呼び出しで取得するレベルを指定します。
構文
HRESULT SetCurrentLevel(
[in] UINT nLevel
);
パラメーター
[in] nLevel
型: UINT
次に返すレベルを指定します。 サポートされているレベルの合計数より大きい場合は、エラーが返されます。
戻り値
種類: HRESULT
このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。
注釈
呼び出しでは、サポートされているすべてのレベルを要求する必要はありません。 呼び出し元が、以前にレベル 0 を要求せずにレベル 1 を要求した場合、 CopyPixels の次の呼び出しによって返されるビットには、両方のレベルが含まれます。
要求されたレベルが無効な場合、返されるエラーは WINCODEC_ERR_INVALIDPROGRESSIVELEVEL。
例
GetCurrentLevel メソッドではなく、プログレッシブ JPEG イメージのプログレッシブ レベルを反復処理するには、このメソッドを使用する必要があります。 JPEG プログレッシブ レベルはイメージによって決定され、固定レベル数はありません。 GetCurrentLevel メソッドを使用すると、アプリケーションは、すべてのプログレッシブ レベルがダウンロードされるまで強制的に待機し、そのレベルを返すことができます。 代わりに、アプリケーションは次のコードを使用して、プログレッシブ JPEG イメージのプログレッシブ レベルを反復処理する必要があります。
IWICProgressiveLevelControl *pProgressive = NULL;
HRESULT hr = (pBitmapFrame->QueryInterface(
IID_IWICProgressiveLevelControl,
(void**) &pProgressive));
if (SUCCEEDED(hr))
{
for (UINT uCurrentLevel = 0; SUCCEEDED(hr); uCurrentLevel++)
{
hr = pProgressive->SetCurrentLevel(uCurrentLevel);
if (WINCODEC_ERR_INVALIDPROGRESSIVELEVEL == hr)
{
// No more levels
break;
}
if (SUCCEEDED(hr))
{
// Output the current level
hr = pBitmapFrame->CopyPixels(...);
}
}
}
if (pProgressive)
{
pProgressive->Release();
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7、Windows Vista SP2 および Windows Vista 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 R2、Windows Server 2008 SP2 および Windows Server 2008 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | wincodec.h |
[DLL] | Windowscodecs.dll |