ドキュメントによると、setRotation(90)は、キャプチャされたJPEG画像を回転させる必要があります(横向きモードではtakePicture)。
これはHTC電話では正常に機能しますが、Samsung GoogleNexusSおよびSamsungGalaxyS3では機能しません。これはバグですか?
マトリックス変換ローテーションを使用できることは知っていますが、OSがこれをより効率的に実行できることを望み、他のデバイスで過度にローテーションするリスクを冒したくありません。
編集
プレビューをポートレートモードに設定camera.setDisplayOrientation(90);
しましたが、撮影した写真には何の影響もありませんでした。
さらに、setRotation
私は画像サイズを設定しようとしました-ここで私は:で反転h
しw
ますparameters.setPictureSize(1200, 1600);
。これも影響はありませんでした。
解決
どうやらSamsungの携帯電話は、個々のピクセルを回転させるのではなく、EXIF方向タグを設定しているようです。提案されているようariefbayu
に、を使用してビットマップを読み取ることは、BitmapFactory
このタグをサポートしていません。彼のコードサンプルがソリューションであり、このソリューションはの使用とも互換性がありinSampleSize
ます。