2013年12月09日

[Android] Bitmapを回転する

アプリ内で画像(Bitmap)を回転しなければいけなくなりました。
カメラを使ったアプリを作ったときに一度実装したのですが、覚えていなかったので結局また調べて実装することに…。

Bitmap#createBitmap (Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter) | Android Developers

使うのは↑このメソッドですね。
最後の引数のfilterは、変形する時にメソッド内部でPaint#setFilterBitmap()に渡す値のようです。
通常はtrueにしておくのが良いでしょう。
Bitmap orgBmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);

Matrix matrix = new Matrix();
matrix.postRotate(90);

Bitmap rotatedBmp = Bitmap.createBitmap(orgBmp, 0, 0, orgBmp.getWidth(), orgBmp.getHeight(), matrix, true);

こんな感じ。
回転しかしないならmatrix#setRotate()でも良いですね。
以上です。

posted by t2low at 22:00| Android