Изображение, полученное камерой Android, должно быть повернуто после захвата?

Я пишу приложение для Android, использующее камеру. Я устанавливаю ориентацию дисплея камеры на 90, мои действия - в портретной ориентации:

camera.setDisplayOrientation(90);

Я получаю хорошо ориентированное изображение предварительного просмотра, но получившееся изображение повернуто на -90 градусов (против часовой стрелки) а

exif.getAttribute(ExifInterface.TAG_ORIENTATION)

возвращает ORIENTATION_NORMAL
Это ожидаемое поведение? Должен ли я повернуть полученное изображение после захвата?

Устройство - Nexus S, API - 10

24
задан GetUsername 1 December 2011 в 19:14
поделиться

2 ответа

Проблема в том, что ориентация камеры - это полная катастрофа (как при захвате изображения), потому что производители не придерживаются стандарта. Телефоны HTC работают по-разному, телефоны Samsung - по-другому, кажется, что линейка Nexus не зависит от того, какой производитель, ПЗУ на базе CM7, я думаю, следуют стандарту независимо от того, какое оборудование, но вы понимаете. Вы как бы должны определить, что делать, основываясь на телефоне / ПЗУ. Смотрите обсуждение здесь: Необъяснимое вращение камеры Android при захвате для некоторых устройств (не в EXIF)

14
ответ дан 28 November 2019 в 23:26
поделиться

У меня была такая же проблема, как и у тебя, но я ее исправил.
Вы должны использовать тот же код:

Camera.Parameters parameters = camera.getParameters();
parameters.setRotation(90);
camera.setParameters(parameters);

Я надеюсь, что вы можете использовать этот код тоже.

6
ответ дан 28 November 2019 в 23:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: