如何在Windows Phone 8应用程序中循环浏览图像的所有像素

时间:2014-01-20 13:31:12

标签: c# image-processing windows-phone-8

我实际上是想在windows phone 8应用程序中遍历图像的所有像素。 基本上,在类库中我使用这种“不安全的代码”。

unsafe {
    byte* prSrc = (byte*)(void*)d;
    byte* prDest = (byte*)(void*)s;

    for(int y = 0; y < bitmap.height; y++)
    {
        for(int x = 0; x < bitmap.width; x++)
        {
            // do some work here
        }
    }
}

但在Windows Phone 8中,这是不可能的。你有解决方法或类似的东西吗?

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

在Windows Phone上,可以通过WriteableBitmap类操作图像。

WriteableBitmap类具有Pixels属性,该属性是包含ARGB32格式(预乘RGB)图像的每个像素的数组。

在每个像素上循环和读/写的最简单方法是使用WriteableBitmapEx(可以通过NuGet安装的开源库)。

然后您可以使用ForEach扩展方法,如下所示:

WriteableBitmap writeableBmp = new WriteableBitmap(myImage, null); 
writeableBmp.ForEach((x, y, color) => 
{
   // Read and write on the color object
   return color;
});