setRotation(90 ) для съемки в портретном режиме не работает на устройствах Samsung

Согласно документации, setRotation(90)должен вращать захваченное изображение JPEG ( takePictureв ландшафтном режиме.

Это прекрасно работает на телефоне HTC, но не работать на Samsung Google Nexus S и Samsung Galaxy S3. Является ли это ошибкой?

Я знаю, что могу использовать вращение матричного преобразования, но хочу, чтобы ОС могла делать это более эффективно, и не хочу рисковать чрезмерным вращением на некоторых других устройствах

изменить

Параметр camera.setDisplayOrientation(90);сделал предварительный просмотр в портретном режиме, однако это не повлияло на сделанное изображение.

Кроме того, помимо setRotationя также попытался установить размер изображения, где я переворачиваю hс w: parameters.setPictureSize(1200, 1600 );.Это тоже ни на что не повлияло.

решение

Видимо телефоны Samsung устанавливают тег ориентации EXIF, а не поворачивают отдельные пиксели.Как предложил ariefbayu, чтение Bitmap с использованием BitmapFactoryне поддерживает этот тег. Его пример кода является решением, и это решение также совместимо с использованием inSampleSize.

36
задан tofi9 13 June 2012 в 23:45
поделиться