C#/通用Windows平台
我有一个对象,其中包含一个包含图像作为base64编码字符串的属性。如何将此字符串绑定到前端的图像?目前我可以异步将base64字符串转换为BitmapImage,但不能将生成的图像绑定到前端,因为属性不能包含异步函数。我将如何做到这一点,因为到目前为止我找到的所有解决方案都不适用于UWP。
感谢您的帮助。
答案 0 :(得分:3)
第一种是将base64转换为位数组。
您可以使用Convert.FromBase64String
将base64转换为byte []
var bytes = Convert.FromBase64String(base64);
但是byte []不能是你应该将byte []转换为缓冲区
的流 var buf=bytes.AsBuffer();
您可以将其更改为流式传输。
var stream=buf.AsStream();
您可以将该流用于新的BitmapDecoder
var image = stream.AsRandomAccessStream();
var decoder = await BitmapDecoder.CreateAsync(image);
image.Seek(0);
您可以使用将其转换为ImageSource的WriteableBitmap。
var output = new WriteableBitmap((int)decoder.PixelHeight, (int)decoder.PixelWidth);
await output.SetSourceAsync(image);
return output;
然后,您可以将图像源设置为您想要显示的内容。
请参阅convert bitmap WriteableBitmap,convert base64ToImage
如果要将imagesource绑定到Image.Source,则应添加具有属性的类。
public ImageSource Source
{
get { return _source; }
set { _source = value; OnPropertyChanged();}
}
OnPropertyChanged是INotifyPropertyChanged,您可以在github
中使用它您可以使用convert base64来映像源并设置Source。
您可以将其绑定到页面,并查看图像显示base64。