C# 从字节[]到位图图像的UWP值转换器

C# 从字节[]到位图图像的UWP值转换器,c#,.net,bitmap,uwp,ivalueconverter,C#,.net,Bitmap,Uwp,Ivalueconverter,我用这个ValueConverter将字节[]转换成位图图像: public class ByteArrayToImageConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, string language) { var bitmapImage = new BitmapImage();

我用这个
ValueConverter
字节[]
转换成
位图图像

  public class ByteArrayToImageConverter : IValueConverter
  {
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            var bitmapImage = new BitmapImage();
            var buffer = (byte[])value;
            var str = new MemoryStream(buffer).AsRandomAccessStream();
            bitmapImage.SetSource(str);
            return bitmapImage;
        }

        public object ConvertBack(object value, Type targetType, object parameter, string language)
        {
            throw new NotImplementedException();
        }
  }
奇怪的是,当我运行代码时,应用程序挂起(死锁)在
SetSource
的行中


为什么会这样?我做错什么了吗?

我尝试使用下面的代码进行转换

var bytes = (byte[])value;

var image = bytes.AsBuffer().AsStream().AsRandomAccessStream();

// decode image
var decoder = await BitmapDecoder.CreateAsync(image);
image.Seek(0);

// create bitmap
var output = new WriteableBitmap((int)decoder.PixelHeight, (int)decoder.PixelWidth);
await output.SetSourceAsync(image);
return output;

在不能声明为async的Convert方法中如何调用它?除此之外,创建一个WriteableBitmap而不是BitmapImage似乎没有任何意义。或者你有什么解释吗?@Clemens我只是想给你一个重复问题的答案。为什么是“我的重复问题”?我既没有问也没有回答这个问题。没道理,对不起。此外,答案在问题的上下文中是无用的。@Clemens回答这个重复的问题。我发现另一个问题没有这样的人。那么你当然应该回答另一个问题,而不是这个问题。但另一个问题显然是关于SetSource的。无论在这里还是那里,调用SetSourceAsync都不是选项。