当我尝试将一个像素颜色从一个bufferedimage复制到另一个bufferedimage时,它也会影响其他像素。
这是我复制像素的8x8 bufferedimage。的getRGB(0,0)
(原始图片)
我只从左上角的坐标0,0复制一个像素值。我期待当我将空白bufferedimage中的0,0像素设置为我从第一个bufferedimage复制的像素时,它会显示输出图像,新缓冲图像的左上角像素为绿色,与一个来自原始,而所有其他像素将是黑色。但遗憾的是,其他像素并未保持黑色,左上角的像素颜色甚至不是绿色。 (见下面的链接)
(新图片:将左上角的像素值设置为原始图片中左上角的值)
我做错了什么吗?或者setRGB真的只是这样工作吗?
这是我的代码:
File file = new File("C:\\Users\\Zach\\Documents\\workspace\\8x8.jpg");
BufferedImage image = null;
try {
image = ImageIO.read(file);
BufferedImage outputImage = new BufferedImage(image.getHeight(), image.getWidth(), BufferedImage.TYPE_INT_RGB);
outputImage.setRGB(0, 0, image.getRGB(0, 0));
File outputFile = new File ("output1.jpg");
ImageIO.write(outputImage, "jpg", outputFile);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
然而,当我将像素值复制到新bufferedimage中的所有像素时,它全部变为绿色。为什么会那样? (显然不能发布超过3个链接)