我想要获取图像中每个像素的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