メディア ギャラリーからビットマップに画像を読み込むと、すべて正常に動作しますが、携帯電話を縦向きにしてカメラで撮影した写真は回転し、ギャラリーでは縦向きに表示されていても常に横向きの画像になります。これはなぜですか。また、正しく読み込むにはどうすればよいですか。
ベストアンサー1
それで、例として...
まず、ExifInterface を作成する必要があります。
ExifInterface exif = new ExifInterface(filename);
次に、画像の向きを取得します。
orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, 1);
方向の値の意味は次のとおりです。http://sylvana.net/jpegcrop/exif_orientation.html
したがって、最も重要な値は 3、6、8 です。ExifInterface.ORIENTATION_ROTATE_90
たとえば、方向が (6) の場合、次のように画像を回転できます。
Matrix matrix = new Matrix();
matrix.postRotate(90);
rotatedBitmap = Bitmap.createBitmap(sourceBitmap, 0, 0, sourceBitmap.getWidth(), sourceBitmap.getHeight(), matrix, true);
ただし、これは簡単な例にすぎません。実際の回転を実行する方法は他にもあるはずです。ただし、StackOverflow でも見つけることができます。