空字节数组c#winrt
我有空字节数组c#winrt,c#,windows-runtime,C#,Windows Runtime,我有WriteableBitmap。我知道在变量wp1中存在图像,因为我保存了这张图片,一切正常。我需要将图像编码到字节[]数组中 WriteableBitmap wp1 = new WriteableBitmap(1, 1); ; wp1.SetSourceAsync(memStream); using (Stream stream = wp1.PixelBuffer.AsStream()) { if (stream.CanWrite) { byte[] pi
WriteableBitmap
。我知道在变量wp1
中存在图像,因为我保存了这张图片,一切正常。我需要将图像编码到字节[]
数组中
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
是空的。数组的长度像素数组
等于流的长度,但所有字节均为零。我该怎么办?我认为您的问题在于这行代码:
wp1.SetSourceAsync(memStream);
这是一个异步方法,所以您必须等到它完成后才能继续。尝试将其更改为:
await wp1.SetSourceAsync(memStream);
如果您使用的是WriteableBitmap扩展,那么有一种更简单的方法可以为您做到这一点,比如:
var pixelDataArray=wp1.ToByteArray()代码>为什么在读取流之前要检查是否能够写入流?现在还不清楚你想在这里做什么。我强烈怀疑SetSourceAsync
不是您想要的-我注意到您也没有等待它。