如何从wp7上的jpg文件中获取位图数据

时间:2011-04-04 22:09:04

标签: c# silverlight windows-phone-7

是否有任何库可以帮助我从WP7上的Phone媒体库加载的JPG文件中获取单个像素?我需要访问单个像素,但现在我只能将整个文件放入字节数组或通过内存流访问这些字节。有任何想法吗?我找到了FJcore,但由于反思我无法使用它......

这是我得到的:

byte[] contents = new byte[e.ChosenPhoto.Length];
MemoryStream fullFileStream = new MemoryStream();
int bytes;
while ((bytes = e.ChosenPhoto.Read(contents, 0, contents.Length)) > 0)
{
    fullFileStream.Write(contents, 0, bytes);
}

我需要一些像 GetPixels()这样的方法的库来访问加载图像中的单个像素。

由于

2 个答案:

答案 0 :(得分:0)

使用WritableBitmap.Pixels。 Silverlight for Windows Phone 7中的像素操作有时会导致性能低下 - 考虑使用XNA。

答案 1 :(得分:0)

http://writeablebitmapex.codeplex.com/包含GetPixel方法,听起来就像您需要的那样。

<强>更新
根据您对其他答案所做的评论,我认为您需要采用不同的方法。 2000像素限制是一个框架限制,旨在通过不包括明显大于屏幕大小的框架元素来尝试和保持性能。

如果您的图像是10k x 10k像素,那么您应该认真考虑将它们从设备上处理掉,然后只将较小的版本或子部分加载到实际设备上。