1

現在、画像で遊んでいるアプリに回転機能を実装しようとしています。

この機能により、ユーザーは画像を -90 度および +90 度回転できます (横向き/縦向きモードの切り替え)。

これが私のコードです:

public Bitmap rotateRight(Bitmap bm) {
    Matrix matrix = new Matrix();
    matrix.postRotate((float)90);

    Bitmap nbm = Bitmap.createBitmap(bm, 0, 0, bm.getWidth(), bm.getHeight(), matrix, true);
    nbm.setDensity(bm.getDensity());
    return nbm; 
}

その後、画像をファイルシステムに保存します。

これは完全に機能しますが、同じ画像を5回または6回回転させようとすると問題が発生します。画質が低下し、最終的に非常に醜い画像を表示することになります...

私たちを手伝ってくれますか ?前もって感謝します !

4

1 に答える 1

2

最初: の最後のパラメーターはcreateBitmap()、結果のビットマップをフィルター処理するかどうかです。true に設定されているため、このアクションを実行するたびにビットマップが少しぼやけます。Bitmap のサイズを変更しないので、これをオフにすることをお勧めします。

次に、PNG などのロスレス形式で画像を保存してください。JPG などの非可逆形式で保存すると、品質パラメーターを最高に設定しても、保存するたびに常に品質が低下します。

于 2012-04-13T12:44:07.970 に答える