2012-05-03 17 views
0

我想我BufferedImage轉換成整數數組,但我得到以下錯誤:「java.awt.image.DataBufferByte不能轉換爲java.awt.image.DataBufferInt錯誤當試圖BufferedImage的轉換成int數組

這裏是我的代碼位:

public class Test { 
    public static void main (String [] args) { 
    BufferedImage img = null; 
    try { 
     img = ImageIO.read(new File("G.bmp")); 
    } catch (IOException e) { } 

    int[] imgarray = ((DataBufferInt)img.getRaster().getDataBuffer()).getData(); 
    } 
} 

回答

3

試試這個:

byte[] imgarray = ((DataBufferByte)img.getRaster().getDataBuffer()).getData(); 
+0

感謝這個作品..現在我有一個字節數組不過,但我想一個字節就足夠了:) – John

+0

是的,一個字節數組通常用於傳遞任何二進制數據(到一個流,或從它創建一個圖像,反之亦然)。 –

+0

任何想法爲什麼這不表示爲img.getWritableData(),甚至只是img.buffer?另外,爲什麼我們需要分別處理每個BufferedImage類型的處理 - 是否有一個友好的繼承解決方案? –