我讀爲.jpg圖像和accesing像素爲:我如何創建圖像從像素存儲爲r,g,b每個佔據陣列中的不同位置?
if (type == BufferedImage.TYPE_3BYTE_BGR) {
System.out.println("type.3byte.bgr");
byte[] pixels = (byte[]) sourceImage.getData().getDataElements(0, 0, w, h, null);
}
//處理該數組稱爲像素並顯示所得到的圖像 //第一我將其轉換爲整數
int offseet=0;
int[] data=new int[width*height*3];
for (i = 0; i < data.length; i++) {
data[i] = pixels[offset++] & 0xff;
}
//然後處理這個數組。 現在我不處理它。現在,當我創建緩衝區 //圖像數據數組並顯示它時,顯示的圖像是不一樣的。 //我使用的代碼是
writeEdges(data);
private BufferedImage edgesImage;
private void writeEdges(int arb[]) {
if (edgesImage == null) {
edgesImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
}
edgesImage.getWritableTile(0, 0).setDataElements(0, 0, width,height, arb);
}
//用於penguins.jpg圖像(在視窗7中的樣品的照片提供)!
輸出我得到的是
您在初始化 – 2012-02-12 07:36:37
爲了更好地幫助更快 「偏移」 爲 「offseet」,張貼[SSCCE(http://sscce.org/)。 (雖然第二個圖像相當時髦 - 幾乎是藝術);) – 2012-02-12 07:48:49