我是新的Xamarin Android。现在我试图捕捉图像的相机和imageview显示,但我面临的问题是,图像质量从相机捕捉是低。我做的研究,从谷歌,我只找到了解决方案,这是保存图像捕捉到的文件,并从文件检索。但解决方案只适用于android工作室和xamarin的形式。
这是调用图像捕获的意图的代码
Intent intent = new Intent(MediaStore.ActionImageCapture);
StartActivityForResult(intent, 1000);
这是活动结果的编码
if ((requestCode == PickImageId) && (resultCode == Android.App.Result.Ok) && (data != null))
{
base.OnActivityResult(requestCode, resultCode, data);
bitmap = (Bitmap)data.Extras.Get("data");
var dir = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDcim);
string filename = System.DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".jpg";
string filePath = System.IO.Path.Combine(dir + "/Camera/", filename);
using (var stream = new MemoryStream())
{
bitmap.Compress(Bitmap.CompressFormat.Jpeg, 100, stream);
byte[] bitmapData = stream.ToArray();
try
{
System.IO.File.WriteAllBytes(filePath, bitmapData);
bitmap = BitmapFactory.DecodeByteArray(bitmapData, 0, bitmapData.Length);
imgview.SetImageBitmap(bitmap);
}
catch (Exception ex)
{
System.Console.WriteLine(ex.ToString());
}
}
}
我已经尝试将图像保存到手机文件夹中,文件夹为“DCIM/Camera/xxx.jpg”。捕获并保存在文件夹中的图像是成功的,但图像质量仍然很低。
有什么办法可以提高图像的质量吗?
对不起,我的英语不好,请给我建议或解决办法。
谢谢你的帮助
1条答案
按热度按时间iqxoj9l91#
您好,您可以使用Xamarin Essential Media Picker来拍摄照片。下面是一个示例代码: