Большая фотография из Image_Capture Intent - PullRequest
0 голосов
/ 20 января 2012

Изображения, получаемые камерой, имеют размер 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.

Затем, когда я запускаю select для этой таблицы, чтобы отобразить изображение в браузере в моем проекте ASP.net, используя

"data:image/png;base64," + base64 string from SQL, 

это только изображение размером 324 х 190. Мне нужно либо для того, чтобы сделать большую фотографию из намерения, либо чтобы отобразить ее побольше, используя URL-адрес данных в ASP.net.

1 Ответ

1 голос
/ 20 января 2012

Чтобы получить полноразмерное изображение из намерения 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...