2012-04-13 80 views
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倍相同的圖像出現問題。圖像質量將下降,我終於會有一個非常醜陋的圖像顯示...

你能幫我嗎? 提前謝謝!

回答

2

第一:createBitmap()中的最後一個參數是是否過濾得到的位圖。如果設置爲true,則每次執行此操作時,您的位圖都會變得稍微「模糊」。由於您不更改位圖的大小,因此可能需要關閉此功能。

其次:確保將圖像保存爲無損格式,例如PNG。如果保存爲JPG或其他有損格式,即使將質量參數設置爲最高,每次保存也會降低質量。

+0

謝謝!我現在就試試這個。 – noli 2012-04-13 12:46:13

+0

完美!這正是我期待的!謝謝 ! – noli 2012-04-13 12:50:30

+0

@noli很高興幫助!請接受回答關閉問題:) – Jave 2012-04-13 12:51:26