我想要獲取圖像中每個像素的rgb值。爲此,我使用了getRGB()
,它返回一個整數,我使用Color(arg,true)
進行轉換。如果我打印出getRGB()
結果並將其中一個數字粘貼到Color
類中,它就可以工作。但是,如果使所示的整數等於rgb並將其放入Color
,以便我可以遍歷每個像素,它將返回所有值的255。java中的顏色轉換
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferInt;
import java.io.File;
import java.io.IOException;
import javax.imageio.*;
public class kmeans {
public static void main(String[] args) throws IOException {
File file = new File("andy.jpg");
BufferedImage image = ImageIO.read(file);
int width = image.getWidth();
int height = image.getHeight();
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
int rgb = image.getRGB(i, j);
// System.out.println(rgb);
Color c = new Color(rgb, true);
// System.out.println(c.getRed()+" "+c.getGreen()+" "+c.getBlue()+" ");
System.out.println(c);
}
}
}
}
*有這麼多*個像素;也許這真的是圖像中許多白色像素的結果(其中很多)? – user2864740
問題是什麼? – Sentry
它們中的很多都是白色的,但不是全部基於getRGB()返回的整數。但通過彩色運行它使他們全部255. – tnyN