ImageIO[Resolvido!]

Olá pessoal estou com um problema aki, e o seguinte eu estou gerando uma imagem com o ImageIO so que esta vindo com o fundo preto gostaria de saber como faço para deixalo com o fundo branco.??
Obrigado pela atenção!!
vlw
abs

Você precisaria pintar o fundo de branco, antes de desenhar a imagem.

Obrigado por responder, e como faço isso???
seria desenhar um retangulo com o tamanho que eu quero e depois o restante?
vlw
abs

ja tentei isso :

g.setColor(Color.white); g.setBackground(Color.white);
e nada continua preto.
Quem puder me ajuda eu agradeço.
vlw

ae pessoal consegi colocar o backround branco mais agora ele esta tirando a visualização de alguns componentes!!!
vlw

Como você está fazendo para gerar a imagem? Pode postar o código?

Ta aki o codigo q ultilizo para gerar a imagem:

[code]BufferedImage imagem = new BufferedImage(820, 677, BufferedImage.TYPE_INT_RGB);
imagem.createGraphics();
imagem.getGraphics();

imagem.getRGB(50,50);

Graphics2D graphics = imagem.createGraphics();
Graphics2D g1 = (Graphics2D) graphics.create();
g1.setColor(Color.magenta);
g1.fillArc(getX(),getY(),20,20,0,360);
//etc
ImageIO.write(imagem, “jpg”, new File(“C:/imagem.jpg”)); [/code]
vlw
abs

[quote=UMC]Obrigado por responder, e como faço isso???
seria desenhar um retangulo com o tamanho que eu quero e depois o restante?
[/quote]

Exatamente.

[code]BufferedImage imagem = new BufferedImage(820, 677, BufferedImage.TYPE_INT_RGB);

imagem.getRGB(50,50);

Graphics2D g1 = imagem.createGraphics();
g1.setColor(Color.WHITE);
g1.fillRect(0, 0, 820, 677);

g1.setColor(Color.magenta);
g1.fillArc(getX(),getY(),20,20,0,360);
//etc
g1.dispose();
ImageIO.write(imagem, “jpg”, new File(“C:/imagem.jpg”)); [/code]

Não é necessário chamar o create novamente, já que o createGraphics() já faz isso. Também certifique-se de chamar o dispose, ao final do método.

Aquelas chamadas vazias a createGraphics() e getGraphics() também são desnecessárias.

[quote]Obrigado por responder, e como faço isso???
seria desenhar um retangulo com o tamanho que eu quero e depois o restante?
Exatamente. [/quote]
Acontece que fiz isso so que ele cobre alguns desenhos que eu tenho na tela.

[quote]Não é necessário chamar o create novamente, já que o createGraphics() já faz isso. Também certifique-se de chamar o dispose, ao final do método.

Aquelas chamadas vazias a createGraphics() e getGraphics() também são desnecessárias.[/quote]
ok vou fazer para ver no que vai dar.
vlw

Ola ViniGodoy o que vc falou ja fiz mais ele continua com o background preto.
vlw
abs

Você colocou o fillRect lá??

sim coloquei e ele cobre quase todos o desenhos!!

g1.setColor(Color.WHITE); g1.fillRect(0,0, 820, 677);
vlw

A ordem dos tratores altera o viaduto. Que eu saiba, você tem de desenhar o fundo primeiro, depois os desenhos.

Posta o código todo aí. Se você colocou o fillRect por primeiro, assim como indiquei, não deveria estar cobrindo nada.

e isso mesmo que faço veja:

Graphics2D g1 = imagem.createGraphics(); g1.setColor(Color.WHITE); g1.fillRect(0,0, 820, 677); //etc
vlw
abs

Ok, posta o código inteiro. Sem //etc

veja so essa ta sendo gerada normalmente
http://img37.imageshack.us/img37/6017/importtt.jpg

agora com o codigo

Graphics2D g1 = imagem.createGraphics(); g1.setColor(Color.WHITE); g1.fillRect(0,0, 820, 677); //etc
http://img37.imageshack.us/img37/74/export.jpg
vlw

oh desculpe vou colocar o codigo inteiro e nao tinha visto…

vamos la

[code]
while((rs.next())){

		 setX( rs.getInt("cx")-200);
		 setY( rs.getInt("cy")-200);
		 setX_( rs.getInt("cx_")-200);
		 setY_( rs.getInt("cy_")-200);
		 int nnn = (rs.getInt("sequencia"));
		 setSequencia(rs.getString("sequencia"));

Graphics2D g1 = imagem.createGraphics();
g1.setColor(Color.WHITE);
//g1.drawRect(0,0,820, 677);
g1.fillRect(0,0, 820, 677);
g1.setFont(bigFont);
g1.drawString(“Pontos”,80,20);
g.setFont(bigFont);
g.drawString(“Pontos”,80,20);
if(nnn == 1){
g1.setColor(Color.LIGHT_GRAY);
g1.fillArc(getX(),getY(),20,20,0,360);
g1.setColor(Color.black);
g1.drawString(getSequencia(), getX()+4,getY()+15);

if(nnn > 1){
g1.setColor(Color.white);

			 g1.drawLine(getX_()+12,getY_()+12,getX()+12,getY()+12);

if(lum.equals(“PST”)){
g1.fillArc(getX(),getY(),20,20,0,360);
//g.fillArc(getX(),getY(),20,20,0,360);
//
g1.setColor(Color.black);
g1.drawString(getSequencia(), getX()+4,getY()+15);
}else{

				 g1.setColor(Color.magenta);
			     g1.fillArc(getX(),getY(),20,20,0,360);
			     g1.setColor(Color.black);
			     g1.drawString(getSequencia(), getX()+4,getY()+15);

setXy1 (new ArrayList());
getXy1().add(getX());

		setYx2(new ArrayList<Integer>());
		getYx2().add(getY());
		//xy.add(getY());
		//xy.add(getN());
		setN(new ArrayList<Integer>());
		getN().add(nnn);
		setRes(true);
	 }
		}

g1.setPaint(Color.white);
g1.dispose();
ImageIO.write(imagem, “jpg”, new File(“C:/export.jpg”));
}
}[/code]

ve se ta bom.
vlw
ta meio desorganizado…