Android: как определить параметры изображения (размер? Формат? Размер файла) при использовании MediaStore.ACTION_IMAGE_CAPTURE - PullRequest
0 голосов
/ 21 декабря 2011

У меня есть приложение, которое имеет функцию фотографирования.Изображение, которое я беру, имеет определенный размер Высота х Ширина.

Я использую намерение MediaStore.ACTION_IMAGE_CAPTURE.Могу ли я каким-либо образом манипулировать этими параметрами?

Я нашел другое решение - создать свою собственную работу камеры, используя SurfaceView, как указано в ссылке: [http://itp.nyu.edu/~sve204/mobilemedia_spring10/androidCamera101.pdf][1]

Тогда, я думаю, я могу манипулировать полученным изображением перед сохранениемэто.

Это хороший способ?Могу ли я продолжать использовать намерение MediaStore.ACTION_IMAGE_CAPTURE?Что обычно делается?

1 Ответ

1 голос
/ 21 декабря 2011

По моему опыту вы не можете установить размер изображения, предоставив параметр для этого намерения. Если вы добавите что-то вроде этого
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT,location_of_image_to_save); , он вернет вам изображение размера по умолчанию, установленного вашей камерой. Позже вы можете изменить размер изображения, используя этот код

            int width = photo.getWidth();
            int height = photo.getHeight();
            int newWidth =3000;
            int newHeight =3000; 
            float scaleWidth = ((float) newWidth) / width;// calculate the scale - in this case = 0.4f
            float scaleHeight = ((float) newHeight) / height;

            // createa matrix for the manipulation
            Matrix matrix = new Matrix();
            // resize the bit map
            matrix.postScale(scaleWidth, scaleHeight);
            // rotate the Bitmap


            // recreate the new Bitmap
            Bitmap.createBitmap(photo, 0, 0,width, height, matrix, true);
            Bitmap resizedBitmap = Bitmap.createBitmap(photo, 0, 0, 1000, 1000);
...