2012-02-01 39 views
2

我有一維像素值數組,我可以用這種方法得到紅色,綠色和藍色。如何從像素值數組中創建圖像以及已知的寬度和高度..?

int rgb[] = new int[] 
     { 
      (argb >> 16) & 0xff, //red 
      (argb >> 8) & 0xff, //green 
      (argb  ) & 0xff //blue 
     }; 

我知道圖像的寬度高度以及我想要創建的。 因此,我總共有以下數據。 1)新圖像的寬度 2)新圖像的高度 3)像素值的一維數組。

我的主管建議我使用createRaster方法,但函數參數對我來說很難理解。 你能告訴我一些簡單的代碼嗎? 謝謝。

+0

你在createRaster中發現了很多關於函數參數的內容。你的主管爲你設定了一個任務,讓你學習和理解某些東西,而不是採取捷徑,只是要求一些代碼。 – 2012-02-01 11:04:43

回答

2

this以前SO後說:

public static Image getImageFromArray(int[] pixels, int width, int height) { 
      BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); 
      WritableRaster raster = (WritableRaster) image.getData(); 
      raster.setPixels(0,0,width,height,pixels); 
      return image; 
     } 

如果你無法理解的參數是什麼,你應該看看Java Documentation

0

,你可以:

InputStream is = new ByteArrayInputStream(rgb); 
Image img = ImageIO.read(is); 

RGB應該是一個字節數組。