【发布时间】:2012-02-12 17:26:11
【问题描述】:
我有一个应用程序,我可以在其中从 Web 下载 jpeg,对其进行解码并在 Windows Phone 7.1 上显示。它运作良好,除了一个单一的 jpeg 文件。我用数百个 jpeg 尝试了这个应用程序,这个问题很少发生。
顺便说一句,我尝试使用 PictureDecoder.DecodeJpeg 和 ImageTools 的 Jpeg 解码器解码 jpeg。两者都产生了相同的结果。图片的 %60 或 %70 显示为黑色,其余部分正常。
注意:这不是 2000 像素的限制问题。我通过在解码后将图像分成几部分来解决这个问题。
另一个注意:我检查了那些黑色区域的像素值,它们不是 0(初始值)。
另一个注意事项2:在 XAML 中使用 <image> 控件并将其源设置为以下 URL 是可行的。但这对我来说不是一个选择,因为我需要将它分成几部分(因为 2000 像素的问题)。
这是我遇到问题的 jpeg:http://d24w6bsrhbeh9d.cloudfront.net/photo/1840288_700b_v1.jpg
更新:解码该 JPEG 后,我再次对其进行编码并将其保存到独立本地存储中,并使用独立存储资源管理器工具获取该文件。我可以显示图像,因此它被正确解码和编码。我仍在调查这个问题。
【问题讨论】:
-
我尝试用我的 jpeg 解码器读取图像,它解码得很好。唯一值得注意的是它是一个渐进的 jpeg。您是否尝试读取存储为基线 jpeg 的相同图像?这可能是 WP7 的渐进式 jpeg 解码器中的一个错误。
-
感谢您的评论。我检查了其他一些适用于我的解码器的照片,它们都是渐进式的。我开始认为这可能不是解码器问题,我仍在调查。如果我找到答案,我会更新这篇文章。
-
@mostruash,将答案移至答案帖并标记为答案,以帮助有类似问题的人专注于答案部分。
标签: c# .net silverlight jpeg windows-phone-7.1