Android: ギャラリーから読み込まれたビットマップが ImageView で回転する 質問する

Android: ギャラリーから読み込まれたビットマップが ImageView で回転する 質問する

メディア ギャラリーからビットマップに画像を読み込むと、すべて正常に動作しますが、携帯電話を縦向きにしてカメラで撮影した写真は回転し、ギャラリーでは縦向きに表示されていても常に横向きの画像になります。これはなぜですか。また、正しく読み込むにはどうすればよいですか。

ベストアンサー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 でも見つけることができます。

おすすめ記事