Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
guttaperchevyi
1 / 1 / 0
Регистрация: 15.02.2017
Сообщений: 24
1

Почему переворачивается картинка из галереи?

27.04.2017, 06:16. Просмотров 1854. Ответов 5
Метки нет (Все метки)

Получаю картинку из галереи и вывожу её в ImageView.
В Андроиде 4 она переворачивается на 90 градусов, а в Андроид 6 она нормальная.
Это почему так? Как проверить перевернулась ли она?

Достаю из галереи так:
Java
1
2
3
Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, GALLERY_REQUEST);
А результат обрабатываю так:
Java
1
2
3
4
5
onActivityResult(int requestCode, int resultCode, Intent data) {
picUri = data.getData();
Bitmap thePic = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), picUri);
ImageView picView = (ImageView)form.findViewById(R.id.image);
picView.setImageBitmap(thePic);
Добавлено через 9 часов 15 минут
Я не понял почему, но нашел кучу кодов, как это пофиксить.
Ничего не сработало
Но потом я догадался сделать через пикасо и он сам перевернул как надо.
Так что вопрос закрыт, всем спасибо.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2017, 06:16
Ответы с готовыми решениями:

Не переворачивается программа
Здравствуйте, я вроде бы создал alternate layout для landscape, но когда я верчу эмулятор, ничего...

Почему не отрисовывается картинка?
Написал класс, наследующий ViewSurface MainView. Написал метод onDraw, в котором поле заливается...

Подгружается только одна картинка из галереи
Всем привет При повторном импорте объектов (properties), в карточку и на сайт выводится неполное...

Некорректно увеличивается картинка в скрипте галереи
Как сделать так, чтобы изображения открывались на этой же странице, а не переходили на другую....

Реализация галереи с текстом и скролом в низ + картинка + подкартинки
Добрый день, не так давно увидел такой интересный макет, но не могу понять, как реализовать такую...

5
vxg
Модератор
3306 / 2098 / 332
Регистрация: 13.01.2012
Сообщений: 8,148
27.04.2017, 14:57 2
Лучший ответ Сообщение было отмечено guttaperchevyi как решение

Решение

guttaperchevyi, взять угол из exif
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    public static int getExifAngle(String path) {
        int angle = 0;
        try {
            ExifInterface ei = new ExifInterface(path);
            int orientation = ei.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);
            switch(orientation) {
                case ExifInterface.ORIENTATION_ROTATE_90:
                    angle = 90;
                    break;
                case ExifInterface.ORIENTATION_ROTATE_180:
                    angle = 180;
                    break;
                case ExifInterface.ORIENTATION_ROTATE_270:
                    angle = 270;
                    break;
            }
        } catch (Exception e) {
        }
        return angle;
    }
и перевернуть на него картину
Java
1
2
3
            Matrix matrix = new Matrix();
            matrix.postRotate(angle);
            out = Bitmap.createBitmap(out, 0, 0, w, h, matrix, true);
1
guttaperchevyi
1 / 1 / 0
Регистрация: 15.02.2017
Сообщений: 24
27.04.2017, 16:30  [ТС] 3
Цитата Сообщение от vxg Посмотреть сообщение
guttaperchevyi, взять угол из exif
Спасибо.
Я пытался так сделать, но не получилось.
Или я как всегда криво сделал или что-то ещё надо было учесть.
Короче picasso сам разобрался. За одно ещё и ошибки фильтрует за меня ))
0
ExFau$t
1025 / 807 / 247
Регистрация: 08.05.2012
Сообщений: 3,841
27.04.2017, 20:27 4
По опыту могу сказать, что записать новый угол в exif лучше и проще, чем крутить битмап.
0
vxg
Модератор
3306 / 2098 / 332
Регистрация: 13.01.2012
Сообщений: 8,148
27.04.2017, 21:38 5
ExFau$t, если исходить из принципа "не модифицировать оригинал" то это невозможно, а так - не пробовал, звучит логично, буду знать
0
ExFau$t
1025 / 807 / 247
Регистрация: 08.05.2012
Сообщений: 3,841
27.04.2017, 22:16 6
Кстати в добавок к уже сказанному, лично наблюдал такую штуку, что при повороте через матрицу exif полностью очищался. Запись новых тегов становится невозможной, соответственно сохранить такую картинку с мета-информацией не получается потом (ну если, конечно, в этой задаче есть такая необходимость). Поэтому я менял угол в exif. Судя по всему, классическая галерея андроида или винды подхватывает именно этот угол (могу ошибаться, не охота уточнять), потому как все картинки отображаются, как надо, независимо от дефаултного поворота камеры устройства или ориентации.
0
27.04.2017, 22:16
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.04.2017, 22:16

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Персонаж переворачивается?
Здравствуйте. Вопрос такой: делаю игру,с камерой сзади(прикреплена за персонажем). На...

Почему не перерисовывается картинка
Почему картинка не перерисовывается после нажатия на кнопку, если ее ложить в ScrollAreaGadget, но...

Почему картинка искажена?
Не пойму в чем проблема. почему картинка искаженна. задача лежит в том, что все картинки нужно...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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