2012-10-17 41 views
0

我有一個簡單的使用Windows Imaging Component API的編碼/解碼應用程序。我遇到的問題是,當我使用JPEGXR或BMP格式時,一切正常。然而,當我使用JPEG編解碼器 - 編碼器工作正常,我可以直觀地驗證生成的JPEG圖像,但是當我嘗試解碼該流時,我得到一個WINCODEC_ERR_BADHEADER(0x88982f61)WIC WINCODEC_ERR_BADHEADER僅適用於JPEG圖像

這是失敗的線路:

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

這裏pInputStream是一個由字節數組(輸出字節向量)的字節數組創建的IStream。

請幫忙!這讓我瘋狂!

+0

所以也許這是壞的流,因爲它表明? –

+0

是什麼導致「壞」流?當我將編碼的字節寫入文件時,它會呈現完美的效果。並且我使用完全相同的JPEGXR和BMP代碼(僅編碼GUID發生更改) – Sau

+1

也許您正在將'IStream'當前位置傳遞到流的末尾,或者位於中間,而不是JPEG文件。 –

回答

1

將流作爲參數傳遞時,請確保預先將其設置爲正確的初始位置(尤其是在剛剛寫入數據並期望進一步檢索時將其返回到開始位置)。 API通常不會尋求,因爲這樣它們可以讓您在更大的流中提供數據。

相關問題