将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
中的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;