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

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

Войти
Регистрация
Восстановить пароль
 
Lumber
99 / 99 / 37
Регистрация: 02.12.2015
Сообщений: 239
#1

Как определить правильную ориентацию фотографии? - Программирование Android

28.02.2016, 16:24. Просмотров 283. Ответов 1
Метки нет (Все метки)

На одном устройстве правильная ориентация фото получается при её повороте (Camera.Parameters::setRotation(int rotation) на 90 градусов, на другом на 270 градусов (при одинаковой ориентации самих устройств конечно). Как-то можно программно выяснить на сколько нужно повернуть фото?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2016, 16:24     Как определить правильную ориентацию фотографии?
Посмотрите здесь:
Как заблокировать альбомную ориентацию? Android
Как установить программного ориентацию для разных экранов? Android
Как отобразить папки, содержащие фотографии? Android
Android Как по адресу фотографии fileUri получить Bitmap?
Android Зафиксировать ориентацию экрана
Android Если поменять ориентацию экрана или SurfaceView перекроет другой активити, то приложение завершается аварийно
Не могу найти правильную разницу между датами Android
Android Сканер фотографии
Android Распознавание текста с фотографии
Задать качество фотографии Android
Android Android, отправка фотографии на сервер
Android Прикрепление к письму фотографии из камеры

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
01.03.2016, 12:37     Как определить правильную ориентацию фотографии? #2
я как-то давно делал что-то подобное
реальность жестока - если а файле нет Exif полей - все, труба, только гадать

можно пробовать доставать тег ориентации, если он есть, примерно так
я проверял на картинках из папки Download
Java
1
2
3
4
5
6
7
8
9
10
11
        String filename = Environment.getExternalStorageDirectory() + "/Download/up.jpg";
        int orientation = getOrientation(filename);
        switch (orientation) {
            case ExifInterface.ORIENTATION_NORMAL:
                // bla bla
                break;
            // тут остальные варианты из ExifInterface
            default:
                // как вариант тут обрабатываем -1, не удалось получить ориентацию
                break;
        }
и сам метод
Java
1
2
3
4
5
6
7
8
9
10
11
12
    // если return -1 значит нет EXIF информации в файле или нет этого атрибута, вобщем х.з.
    private static int getOrientation(String path) {
        int orientation = -1;
        try {
            ExifInterface exif = new ExifInterface(path);
            String attr = exif.getAttribute(ExifInterface.TAG_ORIENTATION);
            if (attr != null) orientation = Integer.valueOf(attr);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return orientation;
    }
Ответ Создать тему
Опции темы

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