2012-06-08 128 views
1

我試圖通過抓取像素來在圖像上實現Hill Cipher算法。事實證明,小圖像加載正常。哪個PixelGrabber vs getRGB更快?

但隨着更大的圖像(8MP或12MP),加載速度很慢;因此寫入圖像也很慢。

我用bufferedImage.getRGB(x,y)抓住每個像素,使用算法修改它,並使用bufferedImage.setRGB(x,y,rgb)同時寫入像素。

現在,我需要一些建議,使加載/寫入更快。我想知道PixelGrabber會更好嗎?

+1

既然你知道兩種方法,結果表明什麼? (包括初步的研究/調查結果可以爲整體提供更好的問題。) – 2012-06-08 18:49:22

+1

然後,作爲第三種可能性,查看'Raster' /'BufferedImage.getRaster()'等等,因爲'PixelGrabber'最好陳舊。 – Matt

+0

@pst我不太喜歡PixelGrabber,因爲它在我嘗試時不適合我。 getRGB總是有效。隨着PixelGrabber我總是以空白畫布結束。我還使用了MediaTracker以確保圖像首先被加載。 – h4ck3d

回答

1

getRGB/setRGB是非常慢,因爲他們每次打電話時都會進行大量的顏色空間檢查和顏色轉換。考慮到典型圖像中像素的數量,絕對不是進行任何圖像處理的方式。

通過舊的PixelGrabber或通過BufferedImage.getRaster()獲取原始圖像數據到數組中比較困難(您必須瞭解一些概念),但運行速度要快得多。