[英]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.