我想提取图像像素的R、G和B值。我通过两种方式做到这一点。
File img_file = new File("../foo.png");
BufferedImage img = ImageIO.read(img_file);
第一种方法(效果很好):
img.getRaster().getPixel(i, j, rgb);
第二个方法(抛出 new IllegalArgumentException("每个像素多个组件"))
red = img.getColorModel().getRed(img.getRGB(i, j));
造成这种行为的原因是什么?
最佳答案
通常当我想从 BufferedImage
中提取 RGB 时,我会这样做:
File img_file = new File("../foo.png");
BufferedImage img = ImageIO.read(img_file);
Color color = new Color(img.getRGB(i,j));
int red = color.getRed();
关于java - 从 ColorModel 获取 RGB 分量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21667592/