2011-06-07 28 views
2

我應該怎樣把一個每個像素開啓或關閉,並改變它的顏色: -/打開單個像素/關閉或改變顏色在Java中

+1

如何做一個像素的樣子有已關閉? – 2011-06-07 06:14:33

+1

@Andreas_D:它是一顆明亮的淡紫色。 – 2011-06-07 06:38:45

+1

@OP。由於你是新人,我不會低估你的問題,但這個問題難以置信。你想在圖像,圖形對象或其他東西中關閉它(不管是什麼)? – Kaj 2011-06-07 06:58:06

回答

4

如果你正在做正常的畫以Graphics(或Graphics2D)對象(又名使用AWT/Swing的),然後drawing a single-pixel line是正常的方式:

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

未檢查,但不應該是第3/4參數是'x + 1,y + 1'嗎? – 2011-06-07 07:33:25

+0

@Andrew:這次我沒有測試過,但如果我沒有弄錯,應該畫一個像素。讓我測試一下。 (編輯:已驗證) – 2011-06-07 07:37:05

+0

感謝您的驗證。這無疑是'黃金服務'論壇的貢獻。 ;) – 2011-06-07 07:41:08

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); 
+0

「沒有繪製像素的方法..」請參見[BufferedImage.setRGB(x,y,rgb)](http://download.oracle.com/javase/6/docs/api/java/awt/圖像/ BufferedImage.html#setRGB%28int,%20int,%20int%29)。 – 2011-06-07 07:28:51