JpegBitmapDecoder解码jpeg失败了吗?

时间:2014-04-07 03:52:42

标签: c# wpf bitmap jpeg

我正在使用以下代码来解码Jpge图像

UnmanagedMemoryStream^ mStream = gcnew UnmanagedMemoryStream(_jpegDataBuff, _buffLength);
JpegBitmapDecoder^ decoder = gcnew JpegBitmapDecoder(mStream, BitmapCreateOptions::PreservePixelFormat, BitmapCacheOption::OnLoad);
BitmapSource^ bitmapSource = decoder->Frames[0];

我使用bitmapSource来显示对WPF的控制,但有时结果如下

enter image description here

我在互联网上搜索过很多,但我还没有解决它!

有人可以帮助我吗?

非常感谢,

T& T公司

1 个答案:

答案 0 :(得分:1)

从它的外观来看,我会说JPEG源不完整或无效。唯一例外JpegBitmapDecoder引发的是ArgumentNullException(流为null)和FileFormatException。最可能通过分析文件头来检测文件格式。 JIF / JFIF file structure将图像描述信息保存在相对较小的标题中,后跟“原始”数据。

我猜这个解码器是有弹性的,可以忽略无效(灰色前最后渲染)和/或丢失(渲染灰色)块。我认为检测的唯一方法是分析最终图像(可能检查最后8x8px块没有相同颜色?)或源(可能是计数数据块?)。