如何使用解决方案中的图像创建字节数组。 (Windows Phone 8.1运行时)

时间:2015-08-03 07:57:54

标签: c# .net windows-phone-8.1 windows-8.1 bytearray

我需要从图像中创建一个byte [],但首先我想我必须将它保存为像StorageFile之类的图像文件,并将其传递给此方法,该方法将完成这项工作:

private async Task<byte[]> StorageFileToByteArray(StorageFile file)
    {
        byte[] byteArray = new byte[0];

        if (null != file)
        {
            IRandomAccessStream fileStream = await file.OpenAsync(FileAccessMode.Read);

            var reader = new DataReader(fileStream.GetInputStreamAt(0));
            await reader.LoadAsync((uint)fileStream.Size);

            byteArray = new byte[fileStream.Size];
        }

        return byteArray;
    }

但是如何将它保存到StorageFile?

This is my file

这是我在BitmapImage中加载它的方式:

BitmapImage bitmapImage = new BitmapImage(new Uri("ms-appx:///Assets/no_capture_receipt.png", UriKind.Absolute));

然后如何在StorageFile中保存此图像

1 个答案:

答案 0 :(得分:2)

你想的更容易。

private async Task<byte[]> StorageFileToByteArray(string fileName)  //filename = "no_capture_receipt.png"
{
    var folder = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Assets");

    var storageFile = await folder.GetFileAsync(fileName);

    var buffer = await Windows.Storage.FileIO.ReadBufferAsync(storageFile);

    return buffer.ToArray();        
}

不要忘记将图片的复制到输出目录更改为Copy if newer