Я пишу приложение для Android, использующее камеру. Я устанавливаю ориентацию дисплея камеры на 90, мои действия - в портретной ориентации:
camera.setDisplayOrientation(90);
Я получаю хорошо ориентированное изображение предварительного просмотра, но получившееся изображение повернуто на -90 градусов (против часовой стрелки) а
exif.getAttribute(ExifInterface.TAG_ORIENTATION)
возвращает ORIENTATION_NORMAL
Это ожидаемое поведение? Должен ли я повернуть полученное изображение после захвата?
Устройство - Nexus S, API - 10
Проблема в том, что ориентация камеры - это полная катастрофа (как при захвате изображения), потому что производители не придерживаются стандарта. Телефоны HTC работают по-разному, телефоны Samsung - по-другому, кажется, что линейка Nexus не зависит от того, какой производитель, ПЗУ на базе CM7, я думаю, следуют стандарту независимо от того, какое оборудование, но вы понимаете. Вы как бы должны определить, что делать, основываясь на телефоне / ПЗУ. Смотрите обсуждение здесь: Необъяснимое вращение камеры Android при захвате для некоторых устройств (не в EXIF)
У меня была такая же проблема, как и у тебя, но я ее исправил.
Вы должны использовать тот же код:
Camera.Parameters parameters = camera.getParameters();
parameters.setRotation(90);
camera.setParameters(parameters);
Я надеюсь, что вы можете использовать этот код тоже.