WIC WINCODEC_ERR_BADHEADER仅适用于JPEG图像

时间:2012-10-17 05:24:45

标签: c++ jpeg codec wic

我有一个使用Windows Imaging Component API的简单编码/解码应用程序。我遇到的问题是,当我使用JPEGXR或BMP格式时,一切正常。但是,当我使用JPEG编解码器时 - 编码器工作正常,我可以直观地验证生成的JPEG图像,但当我尝试解码该流时,我得到一个WINCODEC_ERR_BADHEADER(0x88982f61)

以下是失败的行:

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

这里pInputStream是一个由字节数组创建的IStream(编码器的输出 - 输出字节向量的黑盒子)。

请帮忙!这让我疯了!

1 个答案:

答案 0 :(得分:1)

当传递流作为参数时,请确保预先将其设置为正确的初始位置(尤其是如果您只是将数据写入其中并期望进一步检索,请将其重新开始)。 API通常不会寻求,因为这样他们就可以让您在更大的流中提供数据。