我目前正在尝试通过 android 拍照,并将图像保存到稍后将其上传到数据库的位置。在学习了一些在线教程后,我发现我使用的代码仅保存我正在捕获的图像的低分辨率缩略图,而不是完整图像。
有没有办法获得完整尺寸的图像进行保存?由于使用数据库的软件的设置方式,格式需要为 Jpeg。
按预期拍摄照片:
private void _openCamera_Click(object sender, EventArgs e)
{
Intent intent = new Intent(MediaStore.ActionImageCapture);
StartActivityForResult(intent, 0);
}
这是图像最终保存为缩略图的位置。理想情况下,这部分是我们修改的唯一代码:
protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
Bitmap bitmap = (Bitmap)data.Extras.Get("data");
this._photo.SetImageBitmap(bitmap);
MemoryStream memStream = new MemoryStream();
bitmap.Compress(Bitmap.CompressFormat.Jpeg, 100, memStream);
this._tempImageData = memStream.ToArray();
}
Update:SushiHangover 的反应完美无缺。为了使用缓存的图像,我使用了以下代码:
protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
if (resultCode != Result.Ok || requestCode != 88)
{
return;
}
Bitmap bitmap = BitmapFactory.DecodeFile(cacheName);
this._photo.SetImageBitmap(bitmap);
MemoryStream memStream = new MemoryStream();
bitmap.Compress(Bitmap.CompressFormat.Jpeg, 100, memStream);
this._tempImageData = memStream.ToArray();
}