0

Windows ImagingComponentAPIを使用した単純なエンコード/デコードアプリケーションがあります。私が抱えている問題は、JPEGXRまたはBMP形式のいずれかを使用すると、すべてが正常に機能することです。ただし、JPEGコーデックを使用すると、エンコーダーは正常に動作し、生成されたJPEG画像を視覚的に確認できますが、そのストリームをデコードしようとすると、WINCODEC_ERR_BADHEADER(0x88982f61)が表示されます。

失敗する行は次のとおりです。

    hr = m_pFactory->CreateDecoderFromStream(
                                    pInputStream, 
                                    NULL,
                                    WICDecodeMetadataCacheOnDemand,
                                    &pDecoder);

ここで、pInputStreamは、バイト配列(エンコーダーの出力-バイトベクトルを出力するブラックボックス)から作成されたIStreamです。

助けてください!これは私を狂わせています!

4

1 に答える 1

2

引数としてストリームを渡すときは、適切な初期位置にストリームを事前にシークするようにしてください(特に、データを書き込んだばかりでさらに取得が必要な場合は、最初に戻ってシークします)。APIは通常、シークすることを期待されていません。これにより、APIを使用すると、より大きなストリームの途中でデータを提供できるようになります。

于 2012-10-17T06:23:52.160 に答える