Java 为什么image.getRGB(x,y)在某些点返回白色?
我正在用SwingJava进行一个学校项目。我正在尝试使用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
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);