空字节数组c#winrt

时间:2013-04-07 08:43:38

标签: c# windows-runtime

我有WriteableBitmap。我知道在变量wp1中存在图像,因为我保存了这张图片,而且一切都很好。我需要将图像编码为byte[]数组。

WriteableBitmap wp1 = new WriteableBitmap(1, 1); ;
wp1.SetSourceAsync(memStream);

using (Stream stream = wp1.PixelBuffer.AsStream())
{
    if (stream.CanWrite)
    {
        byte[] pixelArray = new byte[stream.Length];
        await stream.ReadAsync(pixelArray, 0, pixelArray.Length);
    }
}

毕竟pixelArray为空。数组pixelArray的长度等于stream的长度,但所有字节都为零。我该怎么办?

2 个答案:

答案 0 :(得分:2)

我认为你的问题就是这行代码:

wp1.SetSourceAsync(memStream);

这是一种异步方法,所以你必须等到它完成后再继续。尝试将其更改为:

await wp1.SetSourceAsync(memStream);

答案 1 :(得分:0)

如果您正在使用WriteableBitmap Extensions,那么可以使用更简单的方法为您执行此操作,例如:var pixelDataArray = wp1.ToByteArray();