3

長方形のビットマップがあり、時計回りまたは反時計回りに 90 度回転する必要があります。

このコードを使用してローテーションを実行できます。

    Matrix matrix = new Matrix();
    matrix.setRotate(90, originalBitmap.getWidth()/2, originalBitmap.getHeight()/2);
    return Bitmap.createBitmap(originalBitmap, 0, 0, originalBitmap.getWidth(), originalBitmap.getHeight(), matrix, true);

ただし、このコードは、高さ/幅の古い値を使用して、画像を「その場で」回転させます。結果として得られる画像は引き伸ばされて見苦しくなります。

画像を 90 度回転して新しい高さ/幅にする良い方法はありますか? おそらく、考えられる解決策の 1 つは、最初に元のビットマップの寸法を変更することですか?

ありがとう

4

1 に答える 1

0

新しいビットマップを作成するときに古い値を使用していませんか? 最後の行でそれらを置き換えるだけです:

 return Bitmap.createBitmap(originalBitmap, 0, 0, originalBitmap.getWidth()/2, originalBitmap.getHeight()/2, matrix, true);
于 2011-06-07T16:02:32.890 に答える