我正在使用javafx进行照片编辑器项目 颜色有些我无法理解
我使用两种方法读取同一张图片的像素
第一种方法:PixelReader(getArgb)
第二种方法:BufferedImage(getRGB)
是的,我知道Argb中的A表示光学的Alph
我将值设置为Red,green,Blue
但是我发现具有相同图像的值之间存在差异
谁能解释我为什么相同像素的RGB颜色值不同?
Image image = new Image("/images/DSC_0024.JPG");
BufferedImage image2;
try {
image2 = ImageIO.read(getClass().getResource("/images/DSC_0024.JPG"));
} catch (IOException ex) {
Logger.getLogger(HomeController.class.getName()).log(Level.SEVERE, null, ex);
return;
}
PixelReader pixelReader = image.getPixelReader();
System.out.println(image.getHeight() + " , " + image.getWidth() + " , " + pixelReader.getPixelFormat().isWritable());
for (int i = 0; i < image.getHeight(); i++) {
for (int j = 0; j < image.getWidth(); j++) {
Color c = new Color(image2.getRGB(j, i));
Color c1 = new Color(pixelReader.getArgb(j, i));
if(c.getRed() != c1.getRed() || c.getGreen() != c1.getGreen() || c.getBlue() != c1.getBlue())
System.out.println(j + " , " + i);
}
}