Como gravar arquivo de imagem?

7 respostas
davidbuzatto

Pessoal, é o seguinte, criei o meu primeiro aplicativo mais sério em Java (veja em davidbuzatto.blog.uol.com.br) ele resolvre funções de primeiro e segundo grau e desenha o gráfico destas.

O gráfico é desenhado em um painel, gostaria de saber se tem como eu criar um fluxo para gravar o desenho que está feito no painel.

Obrigado!

7 Respostas

lcmetzger

Você pode utilizar o pacote javax.imageio, dê uma espiadinha nele!
Com certeza irá lhe ajudar.

davidbuzatto

vish kra, já tentei...

JFileChooser chooser = new JFileChooser();
chooser.setDialogTitle( "Exportar gráfico para arquivo de imagem" );

chooser.setApproveButtonText( "Exportar" );
chooser.setApproveButtonMnemonic( 'E' );
chooser.setApproveButtonToolTipText( "Exporta gráfico para arquivo de imagem" );

chooser.setCurrentDirectory( new File( "." ) );
chooser.setFileFilter(
	new FileFilter() {
		public boolean accept( File f ) {
			return f.getName().toLowerCase().
						endsWith( ".jpg" ) ||
				   f.getName().toLowerCase().
				   		endsWith( ".gif" ) ||
				   f.getName().toLowerCase().
						endsWith( ".bmp" ) ||
				   f.isDirectory();
		}

		public String getDescription() {
			return "Arquivos de Imagem (*.jpg;*.gif;*.bmp)";
		}
	}
);

int r = chooser.showSaveDialog( this );

if ( r == JFileChooser.APPROVE_OPTION ) {

	// retorna o nome do arquivo selecionado
	// ou o nome do arquivo digitado em File Name
	File arquivo = chooser.getSelectedFile();

	if ( arquivo == null || arquivo.getName().equals("") )
		JOptionPane.showMessageDialog(this, "Nome de arquivo inválido",
			"Nome de arquivo inválido", JOptionPane.ERROR_MESSAGE);

	else {
		try {
			ObjectOutputStream saida = new ObjectOutputStream(
				new FileOutputStream( arquivo ) );
			saida.writeObject( pPlotagem );
			saida.close();
			
			/* até aqui tudo bem, criou o arquivo
			 baseado no objeto pPlotagem.
			 agora como faço para converter o objeto em
			 imagem?
			 ja tentei usar os pacotes javax.imageio e
			 javax.imageio.stream
			 mas num me dei muito bem 
			 só consegui criar o arquivo do objeto*/

		}

		catch ( IOException exc ) {
			JOptionPane.showMessageDialog( this,
				"Erro ao criar arquivo.", "Erro",
				JOptionPane.ERROR_MESSAGE );
		}

	}

}
V

Deu certo? não deu? qual erro?

davidbuzatto

dá uma olhada no comentário no código…
gravar o objeto deu certo, só que nao consigo converte-lo em imagem ou então criar um fluxo para imagem para gravá-lo, não sei como proceder, entedeu?

lcmetzger

Veja este exemplo:

Robot robot = new Robot();
        BufferedImage img = robot.createScreenCapture(new Rectangle(Toolkit
                .getDefaultToolkit().getScreenSize()));

        File f = new File("/tmp/teste.jpg");
        ImageIO.write(img, "jpeg", f);

Espero que ajude!

8)

davidbuzatto

vou tentar, valeu!!! se der certo te dou um alô!

davidbuzatto

Hehehe esqueci de te agradecer.
Deu certo sim viu, valeu!!!

Criado 11 de fevereiro de 2005
Ultima resposta 20 de fev. de 2005
Respostas 7
Participantes 3