将BitmapImage作为JSON帖子上传到Windows运行时应用程序

本文关键字:Windows 运行时 应用程序 BitmapImage 作为 JSON | 更新日期: 2023-09-27 17:59:23

我有一个定义为:的BitmapImage

BitmapImage bitmapImage = new BitmapImage(new Uri("http://link.com/image.jpg"));

现在,我需要将图像编码为Base64,然后将POST作为JSON。我还没有找到很多关于这方面的指南,当我找到的时候,它使用了Silverlight或.NET库,而这些库不可用于windows商店开发,我认为它使用了WinRT。如有任何帮助,我们将不胜感激。

将BitmapImage作为JSON帖子上传到Windows运行时应用程序

根据您的场景,您可能可以使用BitmapImage中的UriSource再次读取图像并将其转换为Base64字符串:

BitmapImage bitmapImage = new BitmapImage(new Uri("https://i.stack.imgur.com/830Ke.jpg?s=128&g=1"));
RandomAccessStreamReference rasr = RandomAccessStreamReference.CreateFromUri(bitmapImage.UriSource);
var streamWithContent = await rasr.OpenReadAsync();
byte[] buffer = new byte[streamWithContent.Size];
await streamWithContent.ReadAsync(buffer.AsBuffer(), (uint)streamWithContent.Size, InputStreamOptions.None);
string base64String = Convert.ToBase64String(buffer);

如果你在Windows 8.1 Update 1之前使用Windows应用商店应用程序,你必须手动添加正确的命名空间才能使AsBuffer()扩展正常工作,所以请尝试添加以下内容:

using System.Runtime.InteropServices.WindowsRuntime;