簡體   English   中英

如何使用getRGB獲取Java中圖像的像素值數組

[英]How to get the array of pixel values for an image in java using getRGB

我是Java圖像處理的新手。 實際上,我想做的是將圖像的所有像素值保存到數組rgbArray[] ,問題是我在數組的所有索引(即數組的所有索引)中獲得相同的值數組具有相同的值。 下面給出了一部分代碼:

int[] rgbArray=new int[w*h];     // Array to store the Pixel values
BufferedImage buffer = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB); 
buffer.getRGB(0, 0, w, h, rgbArray, 0, w );
for(int i=0;i<w*h;i++)
 {
  System.out.println("rgbArray["+i+"] = "+ rgbArray[i]);
 }

對於rgbArray所有索引,我得到的輸出是-16777216 圖像的每個像素如何具有相同的值? 以及如何獲得正確的像素值?

由於不為BufferedImage提供任何值,因此每個像素默認為alpha = 255,紅色= 0,綠色= 0和藍色= 0; 將所有這些都放入1 int,您將得到-16777216。 我從:

int val = buffer.getRGB(5, 23);
int a = (0xff000000 & val) >>> 24;
int r = (0x00ff0000 & val) >> 16;
int g = (0x0000ff00 & val) >> 8;
int b = (0x000000ff & val);
System.out.println("a " + a + " r " + r + " g " + g + " b " + b);

產生255 r 0 g 0 b 0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM