我有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
的长度,但所有字节都为零。我该怎么办?
答案 0 :(得分:2)
我认为你的问题就是这行代码:
wp1.SetSourceAsync(memStream);
这是一种异步方法,所以你必须等到它完成后再继续。尝试将其更改为:
await wp1.SetSourceAsync(memStream);
答案 1 :(得分:0)
如果您正在使用WriteableBitmap Extensions,那么可以使用更简单的方法为您执行此操作,例如:var pixelDataArray = wp1.ToByteArray();