Java 为什么image.getRGB(x,y)在某些点返回白色?

Java 为什么image.getRGB(x,y)在某些点返回白色?,java,swing,colors,pixel,Java,Swing,Colors,Pixel,我正在用SwingJava进行一个学校项目。我正在尝试使用drawRect(x,y,width,height)方法绘制图像(稍后我将对像素进行更改,这就是我需要逐个绘制像素的原因)。因此,我编写了以下代码: private void drawImage(Graphics graphics) { int width = image.getWidth(); int height = image.getHeight(); for (int w = 0; w

我正在用SwingJava进行一个学校项目。我正在尝试使用
drawRect(x,y,width,height)
方法绘制图像(稍后我将对像素进行更改,这就是我需要逐个绘制像素的原因)。因此,我编写了以下代码:

private void drawImage(Graphics graphics) {
    
    int width = image.getWidth();
    int height = image.getHeight();
    
    for (int w = 0; w < width; w++) {
        for (int h = 0; h < height; h++) {
            int color = image.getRGB(w, h);             
            graphics.setColor(new Color(color));
            graphics.drawRect(w, h, 1, 1);
        }
    }
}
图像应按如下方式绘制:


为什么
image.getRGB(x,y)
在某些点返回白色?我在这里遗漏了什么?

实际上是
getRGB
返回白色,还是仅仅是使用
drawRect
这种方式的结果?与其绘制数千个小矩形,不如使用image-setRGB方法。操作完像素后,绘制整个图像。@khelwood的问题在于
getRGB
。它不会返回白色,但返回的值与white@Tuqay我认为getRGB()不会返回错误的值。请尝试使用
fillRect(…)
,而不是用于在矩形周围绘制边框的drawRect()。如果fillRect生成的图片正确,我认为这是getRGB返回正确颜色的很好证据。如果你从黑色背景开始,然后再次使用drawRect,我打赌你会看到黑点。实际上是
getRGB
返回白色,还是仅仅是以这种方式使用
drawRect
的结果?与其绘制数千个小矩形,不如使用image setRGB方法。操作完像素后,绘制整个图像。@khelwood的问题在于
getRGB
。它不会返回白色,但返回的值与white@Tuqay我认为getRGB()不会返回错误的值。请尝试使用
fillRect(…)
,而不是用于在矩形周围绘制边框的drawRect()。如果fillRect生成的图片正确,我认为这是getRGB返回正确颜色的很好证据。如果您从黑色背景开始,然后再次使用drawRect,我打赌您会看到黑色斑点。
graphics.drawImage(image, 0, 0, this);