# Grafik als jpg speichern ?



## madbutt (2. Juli 2004)

Hallo,

ich lese aus einer GPS - Datei die Koordinaten und Höhendaten aus und 
schreibe diese dann mit g.drawLine in einen Frame, damit ich ein Höhenprofil bekomme.

Jetzt würde ich gerne Wissen ob man den Output (das Diagramm) irgendwie als jpg oder gif abgespeichert bekommt.

Danke für die Hilfe

Andy


----------



## Thomas Darimont (2. Juli 2004)

Hallo!

Schau mal hier:


```
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 * @author      Darimont<br>
 * @version     1.0<br>
 */

public class SaveImage extends JFrame {

	private final JButton btnSave;
	private final JPanel drawPanel;
	//Unser Bild das wir später speichern wollen...
	private final BufferedImage myImg =
		new BufferedImage(320, 240, BufferedImage.TYPE_INT_RGB);

	private final Graphics gDrawPanel, gBuffImg;

	public SaveImage() {
		super("SaveImage");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		drawPanel = new JPanel();
		drawPanel.setPreferredSize(new Dimension(320, 240));
		drawPanel.addMouseMotionListener(new MouseMotionAdapter() {
			public void mouseDragged(final MouseEvent e) {
				final int x = e.getX();
				final int y = e.getY();
				//Wir zeichnen hier auf den Graphics Kontext von drawPanel und von myImg
				gDrawPanel.drawLine(x, y, x, y);
				gBuffImg.drawLine(x, y, x, y);
			}
		});

		btnSave = new JButton("Save me");
		btnSave.addActionListener(new ActionListener() {

			public void actionPerformed(final ActionEvent e) {
				try {
					//Wir schreiben das Bild in die Datei C:\TestImage.jpg
					ImageIO.write(myImg, "jpg", new File("c:/TestImage.jpg"));
				} catch (final IOException e1) {
					e1.printStackTrace();
				}
			}

		});

		getContentPane().add(drawPanel, BorderLayout.CENTER);
		getContentPane().add(btnSave, BorderLayout.SOUTH);

		pack();
		setVisible(true);
		gDrawPanel = drawPanel.getGraphics();
		gBuffImg = myImg.getGraphics();
		
		//...wir malen das BufferedImage zuerst mit weis aus, da es defaultmäßig komplett schwarz ist. 
		gBuffImg.setColor(Color.WHITE);
		gBuffImg.fillRect(0, 0, 320, 240);
		
		gBuffImg.setColor(Color.BLACK);

	}

	public static void main(final String[] args) {
		new SaveImage();
	}
}
```

Gruß Tom


----------

