В соответствии с документацией setRotation (90) должен вращать захваченное изображение в формате JPEG (takePicture в ландшафтном режиме.
Это отлично работает на телефоне HTC, но не работает на Samsung Nexus S и Samsung Galaxy S3. Это ошибка?
Я знаю, что могу использовать поворот матричного преобразования, но хочу, чтобы ОС могла сделать это более эффективно, и не хочу рисковать чрезмерно вращаться на некоторых других устройствах.
изменить
Настройка camera.setDisplayOrientation(90);
сделала предварительный просмотр в портретном режиме, однако это не повлияло на сделанный снимок.
Кроме того, кроме setRotation
, я также попытался установить размер изображения, где я переворачиваю h
с помощью w
: parameters.setPictureSize(1200, 1600);
. Это также не повлияло.
Решение
По-видимому, телефоны Samsung устанавливают тег ориентации EXIF, а не вращают отдельные пиксели. Как предлагалось ariefbayu
, чтение битмапа с использованием BitmapFactory
не поддерживает этот тег. Его образ кода является решением, и это решение также совместимо с использованием inSampleSize
.