Desenhar Linha pixel by pixel

Boa tarde,

Como posso desenhar uma linha dando dois pontos de forma random?

Preciso de guardar depois num ficheiro, mas tenho de desenhar pixel by pixel, o que tenha até agora:


//criados dois pontos aleatorios

try {
			image =  new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
			for (int i = 0; i < image.getHeight(); i++) { 
				for (int j = 0; j < image.getWidth(); j++)
				{
                                    					
				        //TODO - Calcular o valor entre os dois pontos e saber se preciso pintar ou não
			                image.setRGB(j,i, Color.red.getRGB());	 //fazer set do pixel com a cor da linha
				}
			}
			
			ImageIO.write(image, "bmp", new File(output_img_path));
		} catch (IOException e1) {		
			System.out.println("ERROR !!!!");
		} 

Obrigado

  1. Você é obrigado a desenhar pixel-a-pixel? Nesse caso,use o algorítmo de besenham:
    http://pt.wikipedia.org/wiki/Algoritmo_de_Bresenham
    http://www.frankmarcel.com/programacao/desenhar-reta-java-bresenham-ddainteiro

  2. Se não for, use o método createGraphics() da classe bufferedImage. Ele irá te retornar um objeto do tipo Graphics2D. Use esse objeto para pintar a linha e depois faça um dispose() nele.

O problema final é criar um triangulo de cores RGB como por exemplo: http://www.google.pt/imgres?q=java+triangle+rgb&um=1&hl=pt-PT&safe=off&gbv=2&tbm=isch&tbnid=PPu_gUa0rQFpzM:&imgrefurl=http://blog.abstractable.net/2008/10/its-like-looking-into-eye-of-duck.html&docid=nAgs5B334lhOQM&imgurl=http://denbeste.nu/external/triangle.jpg&w=500&h=500&ei=DZvSTrS_Dcma-gar_cnqDg&zoom=1&iact=hc&vpx=686&vpy=139&dur=482&hovh=225&hovw=225&tx=109&ty=109&sig=104755631029857626458&page=1&tbnh=145&tbnw=161&start=0&ndsp=18&ved=1t:429,r:3,s:0&biw=1280&bih=652

Por isso será mais fácil começar por desenhar o triangulo pixel a pixel. porque com o graphics2D não conseguirei fazer o fill do triangulo da forma que quero.

Com esse algoritmo não sei como utiliza-lo, uma vez que estou a percorrer pixel a pixel, e queria ter uma função auxiliar com parametros x e y, onde retorno true ou false, ou seja, se devo ou não pintar.