0

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

这是失败的行:

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

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

请帮忙!这让我发疯!

4

1 回答 1

2

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

于 2012-10-17T06:23:52.160 回答