WIC WINCODEC_ERR_BADHEADER только для изображений JPEG

У меня есть простое приложение кодирования / декодирования, использующее Windows Imaging Component API. У меня проблема в том, что когда я использую форматы JPEGXR или BMP, все работает нормально. Однако, когда я использую кодек JPEG — кодировщик работает нормально, и я могу визуально проверить сгенерированное изображение JPEG, но когда я пытаюсь декодировать этот поток, я получаю WINCODEC_ERR_BADHEADER (0x88982f61)

Вот строка, которая терпит неудачу:

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

Здесь pInputStream — это IStream, созданный из байтового массива (вывод кодера — черный ящик, который выводит байтовый вектор).

Пожалуйста помоги! Это сводит меня с ума!

0

Решение

При передаче потока в качестве аргумента, убедитесь, что предварительно ищите его в правильной начальной позиции (особенно ищите его в начале, если вы только что записали в него данные и ожидаете дальнейшего извлечения). API-интерфейсы обычно не ищут, потому что таким образом они позволяют вам предоставлять данные в середине большего потока.

1

Другие решения

Других решений пока нет …