在Java中打开/关闭单个像素或更改颜色

时间:2011-06-07 06:08:26

标签: java java-2d

我应该如何打开或关闭每个像素并更改其颜色: - /

3 个答案:

答案 0 :(得分:4)

如果您使用BufferedImage,则有一个名为setRGB的方法可以执行您想要的操作。

答案 1 :(得分:4)

如果您使用Graphics(或Graphics2D)对象(使用AWT / Swing的a.k.a)进行正常绘画,那么drawing a single-pixel line是正常的方式:

int x = 100;
int y = 200;
g.drawLine(x, y, x, y);

答案 2 :(得分:1)

据我所知,在java中没有绘制像素的方法。你做的是使用fillRect或drawLine(在BufferedImage上),with和height等于1。 事先使用setRGB设置颜色。

但是,如果您使用它来创建单个图像(如分形图生成器或类似图像),那么有更有效的方法:

int pixels[] = new int[width * height];

//Draw pixels here, by using something like this:
pixels[y*width + x] = (alpha<<24) | (rgb[0]<<16) | (rgb[1]<<8) | rgb[2]

//Convert to an image like so:
MemoryImageSource source = new MemoryImageSource(width,height,pixels,0,width);
Image image = Toolkit.getDefaultToolkit().createImage(source);