在Windows 8应用程序中使用C#读取Base64图像

时间:2013-02-13 14:25:10

标签: c# xaml windows-8 windows-runtime winrt-xaml

我正在尝试在Windows 8应用上显示图像。图像数据从Web服务收集,并作为Base64编码的字符串提供。

我在Stack Overflow上发现了以下内容:

How do i read a base64 image in WPF?

然而,当我来使用BitmapImage类时,我似乎无法访问System.Windows.Media.Imaging,即使以下Microsoft文档使我们相信它可用于.NET 4.5,和Windows 8应用程序:

http://msdn.microsoft.com/en-us/library/ms619218.aspx

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:3)

您想要的类位于Windows.UI.Xaml.Media.Imaging命名空间中。以下是获取Base64图像并从中创建图像的示例...

var img = @"/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1JFQ ... "; // Full Base64 image as string here
var imgBytes = Convert.FromBase64String(img);
var ms = new InMemoryRandomAccessStream();
var dw = new Windows.Storage.Streams.DataWriter(ms);
dw.WriteBytes(imgBytes);
await dw.StoreAsync();
ms.Seek(0);

var bm = new BitmapImage();
bm.SetSource(ms);

// img1 is an Image Control in XAML
bm.ImageOpened += (s, e) => { this.img1.Source = bm; };
bm.ImageFailed += (s, e) => { Debug.WriteLine(e.ErrorMessage); };

我无法将完整的Base64图像复制到答案中。