ビットマップ画像を90度回転させて、風景フォーマットから肖像画フォーマットに変更しようとしています。例:Androidのビットマップを90度回転すると画像が潰れます。肖像画と風景の間で真の回転が必要です
[A、B、C、D]
[E、F、G、H]
[I、J、K、L]
は90度時計回りに
なる回転しました[I、E、A]
[J、F、B]
[K、G、C](オンラインの例から)以下のコードを使用し
[L、H、D]
画像90度回転しているが、t彼は縦横比を変えるので、垂直に潰れた画像になります。私は何か間違っているのですか?私は使用する必要がある別の方法がありますか?私はビットマップを作成するために使用しているjpegファイルを回転させても簡単です。あなたのコードでは
Matrix matrix = new Matrix();
matrix.postRotate(90);
rotated = Bitmap.createBitmap(original, 0, 0,
original.getWidth(), original.getHeight(),
matrix, true);
:ここ
// create a matrix for the manipulation
Matrix matrix = new Matrix();
// resize the bit map
matrix.postScale(scaleWidth, scaleHeight);
// rotate the Bitmap
matrix.postRotate(90);
// recreate the new Bitmap
Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOriginal, 0, 0, widthOriginal, heightOriginal, matrix, true);
質問が正しく理解されているかどうかわかりません。向きが変わったときに画面レイアウトを回転しますか?または、向きが変わっていなくても画面レイアウトを変更したいですか? (向きが変わるとAndroidは自動的に画面要素を回転させます!) – Ahmed
したがって、ビットマップデータ自体を変更したいと思います。私のアプリでは、カメラが写真を不適切に格納しているため、写真が「ポートレート」の向きで撮影されても、それが「横向き」の向きで読み込まれます。私はファイルのEXIFデータを介して真の方向を検出することができ、私は適切な方向にビットマップを回転させたい。ビットマップの表示方法を変更するだけではなく、実際のデータを変更して、イメージを変更した後に適切に保存できるようにしたいと思います。 – user999764