2012-04-15 39 views
1

我想知道用什麼最快的方法來改變圖像的亮度。我已經實施了'RescaleOp'方法,但我不知道這是最快的方法還是其他方法。這裏是我的實現,我輸入的圖像,改變亮度,並返回一個Image:Java:改變圖像亮度的最快方法

public static Image setBrightness(Image i) { 
    BufferedImage buff = new BufferedImage(i.getWidth(null), i.getHeight(null), BufferedImage.TYPE_INT_ARGB); 
    buff.createGraphics().drawImage(i, 0, 0, null); 
    RescaleOp op = new RescaleOp(brightness, offsets, null); 
    BufferedImage buff1 = new BufferedImage(i.getWidth(null), i.getHeight(null), BufferedImage.TYPE_INT_ARGB); 
    buff1.createGraphics().drawImage(buff, op, 0, 0); 
    return Toolkit.getDefaultToolkit().createImage(buff1.getSource()); 
} 

PS:我還需要使用BufferedImage轉換回一個形象,因爲我的電腦不喜歡渲染BufferedImages。

+2

「......因爲我的電腦不喜歡渲染BufferedImages。」這完全沒有意義。你可以解釋嗎?? – ControlAltDel 2012-04-15 13:32:24

+0

當我每次渲染超過50個時,它會滯後。我的情況超過2000。但我只需要知道如何以儘可能最快的方式改變圖像的亮度,以便與問題無關。 – MrDrProfessorTyler 2012-04-15 13:34:04

+1

然後我會建議最佳解決方案是簡單地控制一次渲染的BufferedImages的數量。 – ControlAltDel 2012-04-15 13:37:35

回答

2

一切我讀過使我相信,RescaleOp中是最好的,最快的選項

+0

好吧,聽起來不錯。謝謝您的幫助 – MrDrProfessorTyler 2012-04-15 13:42:35