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

这是失败的行:

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


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

请帮忙!这真让我发疯!

最佳答案

在将流作为参数传递时,请确保将其预搜索到正确的初始位置(尤其是如果您只是将数据写入其中,并希望进一步检索,则将其找回开头)。通常不希望使用API​​,因为这样可以让您在更大的数据流中间提供数据。

10-04 19:36