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

时间:2015-07-20 11:36:17

标签: win-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;
}

图像未显示在窗口中。当我调试时,发现身高&amp; bitmapImage对象的宽度为0。

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

我使用相同的代码并且适用于我,但是我创建了BitmapImage并在调度程序的线程中设置了它的来源 - 也许这是你问题的关键。