相机拍摄的图像是324 x 190.如何使用android意图拍摄更大的照片?目前的代码:
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
StartActivityForResult(intent, 0);
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
if (resultCode == Result.Ok && requestCode == 0)
{
var settings = PreferenceManager.GetDefaultSharedPreferences(this);
var assetID = settings.GetString("unit", null);
var store = settings.GetString("store", null);
DateTime dt = DateTime.Now;
var date1 = dt.ToString("MM-dd-yyyy");
var time1 = dt.ToString("HH:mm");
Bitmap bitmap = (Android.Graphics.Bitmap)data.Extras.Get("data");
using (var stream = new System.IO.MemoryStream())
{
bitmap.Compress(Android.Graphics.Bitmap.CompressFormat.Png, 0, stream);
byte[] imageBytes = stream.ToArray();
string base64String = Convert.ToBase64String(imageBytes);
inst.saveImage(base64String, store, assetID, date1, time1);
}
}
}
inst.saveImage ...是一种将图像保存到SQL Server数据库的Web方法。
然后当我在该表上运行select时,使用
在我的ASP.net项目的浏览器中显示图像"data:image/png;base64," + base64 string from SQL,
它只是一个324 x 190的图像。我需要它从意图中获取更大的照片,或者使用ASP.net中的数据网址来显示更大的照片。
答案 0 :(得分:1)
要从IMAGE_CAPTURE意图获取完整尺寸的图像,您需要使用:
intent.PutExtra (MediaStore.ExtraOutput, contentResolverUri);
这样的事情:
ContentValues values = new ContentValues();
values.Put (MediaStore.Images.ImageColumns.Title, title);
values.Put (MediaStore.Images.ImageColumns.Description, description);
Uri uri = ContentResolver.Insert (MediaStore.Images.Media.ExternalContentUri, values);
intent.PutExtra (MediaStore.ExtraOutput, uri);
http://developer.android.com/reference/android/provider/MediaStore.html#ACTION_IMAGE_CAPTURE