Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
GiGaBiTe911
24 / 24 / 1
Регистрация: 04.02.2013
Сообщений: 132
Записей в блоге: 1
#1

Некорректный размер фото с камеры - Android

07.03.2013, 12:31. Просмотров 1289. Ответов 8
Метки нет (Все метки)

доброго времени всем. возникла у меня проблемка, делаю я фото с камеры но оно получается очень маленького размера в камере стоит параметр фото 2048х1536 (и такого же размера она сохраняется на карту) а мне в приложение возвращается 192х256. вот примеры кода вызов камеры:
Java
1
2
3
4
5
6
7
OnClickListener OnBtnTakePhoto = new OnClickListener() {
        @Override
        public void onClick(View v) {        
            Intent pictureIntent= new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                        startActivityForResult(pictureIntent, TAKE_AVATAR_CAMERA_REQUEST);
        }       
    };
Получение фото с камеры:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
protected void onActivityResult(int requestCode, int resultCode, Intent data){
        switch (requestCode) {
        case TAKE_AVATAR_CAMERA_REQUEST:
            if(resultCode==Activity.RESULT_CANCELED){
                //отмена фотографирования
            }
            else if(resultCode==Activity.RESULT_OK){
                Bitmap camPic = (Bitmap)data.getExtras().get("data");
                byte[] m_photo = Tools.BitmapToByteArray(camPic); 
                SetPicture(camPic); // метод просто загружает фото в ImageView
            }
            break;
 
        default:
            break;
        }
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silentnuke
Android Programmer
138 / 139 / 5
Регистрация: 08.12.2010
Сообщений: 421
11.03.2013, 01:41     Некорректный размер фото с камеры #2
правильно, вам возвращается превью.
если вы хотите получить полное изображение, задайте MediaStore.EXTRA_OUTPUT в pictureIntent, за тем в обработчике onActivityResult по указанному пути заберите картинку.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.03.2013, 01:45     Некорректный размер фото с камеры #3
можно юзать путь по умолчанию, чтобы достать его - data.getData()
silentnuke
Android Programmer
138 / 139 / 5
Регистрация: 08.12.2010
Сообщений: 421
11.03.2013, 02:05     Некорректный размер фото с камеры #4
Цитата Сообщение от V0v1k Посмотреть сообщение
можно юзать путь по умолчанию, чтобы достать его - data.getData()
угу и ловить на многих девайсах вместо пути null.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.03.2013, 02:43     Некорректный размер фото с камеры #5
почему?

Добавлено через 43 секунды
у них по дефолту стоит не сохранять никуда?
GiGaBiTe911
24 / 24 / 1
Регистрация: 04.02.2013
Сообщений: 132
Записей в блоге: 1
11.03.2013, 12:06  [ТС]     Некорректный размер фото с камеры #6
Цитата Сообщение от silentnuke Посмотреть сообщение
правильно, вам возвращается превью.
если вы хотите получить полное изображение, задайте MediaStore.EXTRA_OUTPUT в pictureIntent, за тем в обработчике onActivityResult по указанному пути заберите картинку.
попробовал такой вариант.... не работает.
1. при вызове startActivityForResult(pictureIntent, TAKE_AVATAR_CAMERA_REQUEST); - вылетает FATAL EXCEPTION: ActivityNotFoundException: No Activity found to handle Intent {act=output}
2. если же пробовать как было но получить путь к картинке через data.getData() - возвращает //media/external/images/media/265, тогда как на самом деле она храниЦа здесь -//sdcard/DCIM/100LGDSC
что я неправильно делаю? может добавить каких то пермишинов?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.03.2013, 13:03     Некорректный размер фото с камеры #7
Цитата Сообщение от GiGaBiTe911 Посмотреть сообщение
1. при вызове startActivityForResult(pictureIntent, TAKE_AVATAR_CAMERA_REQUEST); - вылетает FATAL EXCEPTION: ActivityNotFoundException: No Activity found to handle Intent {act=output}
видимо вы неправильно поняли выражение "задайте MediaStore.EXTRA_OUTPUT в pictureIntent"
Java
1
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);

Цитата Сообщение от GiGaBiTe911 Посмотреть сообщение
2. если же пробовать как было но получить путь к картинке через data.getData() - возвращает //media/external/images/media/265, тогда как на самом деле она храниЦа здесь -//sdcard/DCIM/100LGDSC
что я неправильно делаю? может добавить каких то пермишинов?
все правильно, это галерейная урла.
JIyrApy
32 / 32 / 1
Регистрация: 22.08.2010
Сообщений: 243
11.03.2013, 15:25     Некорректный размер фото с камеры #8
Вот вариант который я использую
1) Метод вызова камеры (можно на кнопку поставить)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
private void saveFullImage() {
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        
        timeStamp = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); // название из даты
        
        File file = new File(_путь_к_директории_,timeStamp+".png");
        Uri outputFileUri1 = Uri.fromFile(file);
        
        intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri1);
        startActivityForResult(intent, CAMERA_RESULT);
        
 
    }
2) если так передаем, значит data получитcя null
то есть обрабатываем:
Java
1
2
3
4
5
6
7
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == CAMERA_RESULT) {
            if(data==null){
              // любые действия с файлом outputFileUri1 - полноразмерная фотка.
            }
    }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2013, 18:02     Некорректный размер фото с камеры
Еще ссылки по теме:

Перевернутое изображение камеры Android
Android Распознавание текста с камеры
Android Как подгонять размер диалоговых окон по размер экрана?
Захват движения с камеры Android
Запрос к БД возвращает некорректный результат Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
GiGaBiTe911
24 / 24 / 1
Регистрация: 04.02.2013
Сообщений: 132
Записей в блоге: 1
11.03.2013, 18:02  [ТС]     Некорректный размер фото с камеры #9
всем спасибо, все получилось. отдельная благодарность JIyrApy за столь внятный и детальный пример кода
Yandex
Объявления
11.03.2013, 18:02     Некорректный размер фото с камеры
Ответ Создать тему
Опции темы

Текущее время: 02:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru