setRGB也会更改其他像素

时间:2016-08-15 16:58:46

标签: java eclipse colors bufferedimage

当我尝试将一个像素颜色从一个bufferedimage复制到另一个bufferedimage时,它也会影响其他像素。

这是我复制像素的8x8 bufferedimage。的getRGB(0,0)

original image
(原始图片)

我只从左上角的坐标0,0复制一个像素值。我期待当我将空白bufferedimage中的0,0像素设置为我从第一个bufferedimage复制的像素时,它会显示输出图像,新缓冲图像的左上角像素为绿色,与一个来自原始,而所有其他像素将是黑色。但遗憾的是,其他像素并未保持黑色,左上角的像素颜色甚至不是绿色。 (见下面的链接)

new image
(新图片:将左上角的像素值设置为原始图片中左上角的值)

我做错了什么吗?或者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个链接)

0 个答案:

没有答案