在 windows 通用应用程序中将图像原始数据转换为位图图像

converting Image raw data to bitmapimage in windows universal app

我正在尝试实现一个 windows 通用应用程序。我面临将图像原始数据(字节数组)转换为 BitmapImage 控件的问题。我不知道图像原始数据的类型。我使用了下面的代码,

private async Task<BitmapImage> ByteArrayToBitmapImage(byte[] byteArray)
{
    var bitmapImage = new BitmapImage();

    var stream = new InMemoryRandomAccessStream();
    await stream.WriteAsync(byteArray.AsBuffer());
    stream.Seek(0);

    bitmapImage.SetSource(stream);
    return bitmapImage;
}

图像未显示在 window 中。我调试的时候发现bitmapImage对象的高宽都是0.

如果有人知道解决方法,请帮助我

我正在使用相同的代码并为我工作,但我创建了 BitmapImage 并将其源设置在调度程序的线程上 - 也许这是您问题的关键。

最后我的问题解决了,当我使用下面的代码时,

    var bmp = new WriteableBitmap(320, 240);
    using (var stream = bmp.PixelBuffer.AsStream())
    {
        stream.Write(bytes, 0, bytes.Length);
        myImage.Source = bmp;
    }