有没有人可以帮我解决如何从文档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文件并获取新路径..感谢提前。
答案 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();