0

在 WindowsStoreApps 中,我想将本地图像从解决方案资源管理器转换为字节数组,然后转换为 base64 字符串。请指导我。到目前为止我尝试过的代码如下。

public async Task<string> ToBase64()
{
  Byte[] ByteResult = null;

  string bs64 = null;
  if (url != null)
  {
      HttpClient client = new HttpClient();
      ByteResult = await client.GetByteArrayAsync(url);     
  }
  bs64 = Convert.ToBase64String(ByteResult);

  return bs64;
}
4

2 回答 2

3

假设您要从 Assets 文件夹转换名为 MyImage.png 的图像,那么下面的代码将返回该图像的 base64 字符串。

private async Task DoWork()
{
    var file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/MyImage.png"));
    var b64 = await ConvertStorageFileToBase64String(file);
}

private async Task<string> ConvertStorageFileToBase64String(StorageFile File)
{
    var stream = await File.OpenReadAsync();

    using (var dataReader = new DataReader(stream))
    {
        var bytes = new byte[stream.Size];
        await dataReader.LoadAsync((uint)stream.Size);
        dataReader.ReadBytes(bytes);

        return Convert.ToBase64String(bytes);
    }
} 
于 2013-10-29T12:19:50.737 回答
1

试试这段代码

StorageFile file = <Your  File>;
var bytes = new Byte[0];
using (IRandomAccessStream fileStream = await file.OpenAsync(FileAccessMode.Read))
{
  var reader = new DataReader(fileStream.GetInputStreamAt(0));
  bytes = new Byte[fileStream.Size];
  await reader.LoadAsync((uint)fileStream.Size);
  reader.ReadBytes(bytes);
}

string imageInStringFormat = Convert.ToBase64String(bytes);
于 2013-10-29T12:17:45.520 回答