从文档Xamarin Android中的字节数组创建图像文件

时间:2017-05-10 17:48:41

标签: c# xamarin xamarin.android

有没有人可以帮我解决如何从文档Xamarin Android中的字节数组创建图像文件并获取图像的新路径?

这是我的代码:

Stream stream = ContentResolver.OpenInputStream(data.Data);
Bitmap bitmap = BitmapFactory.DecodeStream(stream);
MemoryStream memStream = new MemoryStream();
bitmap.Compress(Bitmap.CompressFormat.Jpeg, 50, memStream);
byte[] picData;
picData = memStream.ToArray();

现在picData是字节数组,我需要在doucments中创建一个Jpeg文件并获取新路径..感谢提前。

1 个答案:

答案 0 :(得分:2)

您可以绕过MemoryStream并将Android Bitmap直接解码/压缩到FileStream以节省资源(内存和处理时间):

var bitmap = BitmapFactory.BitmapFactory.DecodeStream(stream);
var path = Path.Combine(GetExternalFilesDir(Environment.DirectoryDocuments).AbsolutePath, "sameImagePath.jpg");
if (!File.Exists(path))
{
    using (var filestream = new FileStream(path, FileMode.Create))
    {
        if (bitmap.Compress(Bitmap.CompressFormat.Jpeg, 50, filestream))
        {
            filestream.Flush();
        }
        else {} // handle failure case...
    }
}
bitmap.Recycle();
bitmap.Dispose();