Paintsurface ins Bild konvertieren

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,
ist es moeglich den Paintsurface Inhalt zu jeder Zeit in ein Bild zu konvertieren und wenn ja gibt es dazu ein Beispeil?

Viele Grüße
 

0x7F800000

Top Contributor
was isn ein "Paintsurface" ? In der API scheint es sowas nicht zu geben, alles was google liefert, ist diese seite hier, und ein paar andere beispiele aus den foren von irgendwelchen privatleuten... :autsch:
 

Marco13

Top Contributor
Vermutlich meint er den Inhalt einer Component (*Kristallkugel grad frisch geputzt hat* :wink: )
Falls ja: BufferedImage erstellen, mit component.paintComponent(bufferedImage.getGraphics()); die component dort reinmalen, BufferedImage mit ImageIO speichern.
Falls nein: Häh?
 
G

Guest

Gast
Sorry fuer die fehlende Information.
@Marco13: Danke, deine Kristallkugel ist spitze. "PaintSurface extends JComponent" und dort wird alles gezeichnet und dessen Inhalt wollte ich dann in ein Bild speichern.
 

flashdog

Bekanntes Mitglied
Habe leider folgendes Problem. Programm startet und es erscheint auf dem Bildschirm ein gelber Ball. Wenn man den init Button klickt erscheint ein
zweiter Ball auf dem Bildschirm.

Wenn man auf Screenshoot klickt wird ein PNG Bild erzuegt aber nur mit dem ersten Ball.

Code:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;

import javax.swing.*;

public class BallRoom extends JApplet implements ActionListener, Runnable {
	private final int WIDTH = 350;
	private final int HEIGHT = 300;
	private PaintSurface canvas;
	private JButton screenshot, init;
	private GenerateScreenshot MakeScreenshot;
	private JPanel control;
	private boolean pIDs[];

	public void init() {     
		this.setSize(WIDTH, HEIGHT);
		pIDs = new boolean[4];

		for (int i = 1; i <= 4; i++) {
			pIDs[i-1] = true;               
		}
		
		canvas = new PaintSurface();
		this.add(canvas, BorderLayout.CENTER);

		control = new JPanel();
		init = new JButton("init");
		init.addActionListener(this);
		screenshot = new JButton("screenshot");
		screenshot.addActionListener(this);
		control.add(init);
		control.add(screenshot);
		this.add(control, BorderLayout.SOUTH);


		MakeScreenshot = new GenerateScreenshot();
	}

	public void run() {

	}

	public void update(Graphics g) {
		paint(g);
	}

	public void actionPerformed(ActionEvent e){
		if (e.getSource() == init){
			canvas.initialization = true;
			canvas.repaint();
		}
		if (e.getSource() == screenshot){
			try {
				MakeScreenshot.generatePNGFileFromComponent(canvas, "E:\\human\\test.png");
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
	}
}
Code:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.Ellipse2D;
import javax.swing.JComponent;

class PaintSurface extends JComponent {
	
	private String r;
	boolean initialization = false;
	private boolean pIDs[];
	private Color color[] = {Color.BLACK, Color.RED, Color.YELLOW, Color.GREEN, 
				Color.BLUE, Color.ORANGE, Color.PINK, Color.BLACK, Color.GRAY, Color.LIGHT_GRAY};
  int d = 20; // the diameter of the ball
	final float ScalingFactor = 2;
	final float ElipseSize = 2;

  
	public void Initialization(Graphics2D g2){
		System.out.println("Initialization");

				g2.setColor(color[2]);
				Shape molecule = new Ellipse2D.Float(30 * ScalingFactor, 6 * ScalingFactor, 20, 20);
  			g2.fill(molecule);
	}

  @Override
  public void paintComponent(Graphics g) {
  	Graphics2D g2 = (Graphics2D)g;
 	if (initialization == true){
  		Initialization(g2);
  		initialization = false;
  	}
 	g2.setColor(color[2]);
	Shape molecule = new Ellipse2D.Float(2 * ScalingFactor, 4 * ScalingFactor, 20, 20);
	g2.fill(molecule);
  }
}
Code:
import java.awt.Component;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class GenerateScreenshot {
	public  BufferedImage generateBufferedImageFromComponent(Component component) {
		BufferedImage image = new BufferedImage(component.getWidth(), component.getHeight(), BufferedImage.TYPE_INT_RGB);
		Graphics g = image.getGraphics();
		g.setColor(component.getBackground());
		g.fillRect(0, 0,  image.getWidth(), image.getHeight());
		component.print(g);
		g.dispose();
		return image;
	}
	public  void generatePNGFileFromComponent(Component component, String filename) throws IOException {
		generatePNGFileFromComponent(component, new File(filename));
	}
	public  void generatePNGFileFromComponent(Component component, File file) throws IOException {
		BufferedImage image = generateBufferedImageFromComponent(component);
		ImageIO.write(image, "png", file);
	}
}


Warum werden nicht beide Baelle im PNG dargestellt und wie bekommt man es hin das beide Baelle im PNG Bild erscheinen?
 

Marco13

Top Contributor
Das mit der "initialization" ist eben ... falsch. Innerhalb der paint-Methode wird der Zustand der "PaintSurface" geändert. Man könnte jetzt zwar vor dem Abspeichern "initialization" nochmal auf true setzen, aber das wäre immernoch Murks. Vielleicht müßte auch nur die Zeile "initialization = false;" aus der paintComponent rausgenommen werden. Aber was auch immer mit diesem "initialization" erreicht werden sollte: Du solltest es anders machen. In der paintComponent sollte NUR gezeichnet, und NICHT der Zustand der PaintSurface verändert werden.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Bild wird nicht geladen Spiele- und Multimedia-Programmierung 4
D Java Bild bewegen funktioniert nicht Spiele- und Multimedia-Programmierung 8
J OpenGL Bild wird nicht richtig angezeigt Spiele- und Multimedia-Programmierung 2
S Wie kann ich ein Bild in einen Frame einfügen? Spiele- und Multimedia-Programmierung 2
U DPI von einem Bild definieren Spiele- und Multimedia-Programmierung 5
J Bild ohne Quallitätsverlust skalieren Spiele- und Multimedia-Programmierung 11
Silvascus Bild --> JFrame Hintergrund Spiele- und Multimedia-Programmierung 3
D getsubimage aus BufferedImage und Rueckwandlung in ein ImagePlus bild Spiele- und Multimedia-Programmierung 0
A Bild(sequenz) wird nicht geladen Spiele- und Multimedia-Programmierung 1
windl EXIFF Header in ein Bild schreiben Spiele- und Multimedia-Programmierung 0
L Bild in Richtung Maus drehen Spiele- und Multimedia-Programmierung 4
B Bild ohne Image auf die Festplatte streamen Spiele- und Multimedia-Programmierung 4
R [lwjgl] Cursor -> versetzt Zeichnen / Bild ist umgedreht Spiele- und Multimedia-Programmierung 2
F [JMyron] Bild von int[] zu BufferedImage Spiele- und Multimedia-Programmierung 2
Hoppelmann Alphamap (Bild) für 3D-Terrain generieren Spiele- und Multimedia-Programmierung 2
K Bild von USB-Webcam über JMF Spiele- und Multimedia-Programmierung 2
M Farbwerte für Flächen aus einem Bild erkennen Spiele- und Multimedia-Programmierung 3
S Wolken Bild/Grafik vom Programm erstellen lassen Spiele- und Multimedia-Programmierung 11
P Bild Pixelweise auslesen Spiele- und Multimedia-Programmierung 13
K Bild berührt Bild Spiele- und Multimedia-Programmierung 29
aze Nicht rechteckiges Bild zeichnen Spiele- und Multimedia-Programmierung 5
A Bild einer Webcam auffangen Spiele- und Multimedia-Programmierung 20
B Generierung einer Wertetabelle aus einem Bild Spiele- und Multimedia-Programmierung 3
lumo LWJGL - Bild rendern Spiele- und Multimedia-Programmierung 16
A .jpg-Bild auf andere Position verschieben Spiele- und Multimedia-Programmierung 4
F Bild im sourcecode Spiele- und Multimedia-Programmierung 32
F Bild einfärben Spiele- und Multimedia-Programmierung 5
J JOGL - Bild wird immer wieder weiß Spiele- und Multimedia-Programmierung 2
Q Rechteck in BIld suchen Spiele- und Multimedia-Programmierung 8
M Bild kopieren Spiele- und Multimedia-Programmierung 2
S Bild capturen mit direcShow Spiele- und Multimedia-Programmierung 2
B Character Bild links/rechts Spiele- und Multimedia-Programmierung 19
Developer_X Bild Größe einstellen Spiele- und Multimedia-Programmierung 2
ARadauer bild in bild suchen Spiele- und Multimedia-Programmierung 6
M 2D - Bild um y-Achse drehen Spiele- und Multimedia-Programmierung 9
S Bild spiegeln Spiele- und Multimedia-Programmierung 7
N Farberkennung und -ersetzung in einem Bild Spiele- und Multimedia-Programmierung 2
G Palette aus Bild extrahieren Spiele- und Multimedia-Programmierung 5
A Wasserzeichen auf Bild Spiele- und Multimedia-Programmierung 2
M Sich nach links verschiebendes Bild Spiele- und Multimedia-Programmierung 2
F Bild generieren Spiele- und Multimedia-Programmierung 3
J Animation hinter transparentem Bild auf der GlassPane Spiele- und Multimedia-Programmierung 6
A Kein Bild Spiele- und Multimedia-Programmierung 3
T Bild als mehrdimesionaler Array Spiele- und Multimedia-Programmierung 4
H Bild von Webcam laden Spiele- und Multimedia-Programmierung 4
P Bild, Pixel- / Bereichsfarbe auslesen Spiele- und Multimedia-Programmierung 12
G start Bild einfrügen in ein Java Spiel Spiele- und Multimedia-Programmierung 7
Quaxli off-topic: HDR-Bild errechnen Spiele- und Multimedia-Programmierung 3
P linie in bild zeichnen Spiele- und Multimedia-Programmierung 2
G Auf Tastendruck bild verschieben Spiele- und Multimedia-Programmierung 5
O ich hab da ein problem mit nem bild Spiele- und Multimedia-Programmierung 8
C JPEG oder BMP Bild erstellen Spiele- und Multimedia-Programmierung 5
A Bild im Raum darstellen (Texture2D) Spiele- und Multimedia-Programmierung 4
V Wie berechnet man das Bild eines Schwarzen Loches in Java? Spiele- und Multimedia-Programmierung 10
K Einzelne Pixel in einem Bild lesen Spiele- und Multimedia-Programmierung 5
N Bild zu zeichnen (drawImage) klappt nur manchmal?? Spiele- und Multimedia-Programmierung 8
P repaint verschiebt das Bild Spiele- und Multimedia-Programmierung 2
S BMP-Bild Pixel für Pixel bearbeiten Spiele- und Multimedia-Programmierung 1
P 2D Bild drehen Spiele- und Multimedia-Programmierung 4
M durchsichtiges Bild nach clearRect Spiele- und Multimedia-Programmierung 8
M RGB-Bild in Graustufen-Bild umwandeln Spiele- und Multimedia-Programmierung 2
M Bild-Spiegelung mit Java! Spiele- und Multimedia-Programmierung 5
S Bild auf Bild = Nichts? Spiele- und Multimedia-Programmierung 3
S Bild in Speicherbild zeichnen = Nichts? Spiele- und Multimedia-Programmierung 3
N Bild im Panel ändern Spiele- und Multimedia-Programmierung 3
D nicht 4-eckiges bild auf Hintergrund bewegen Spiele- und Multimedia-Programmierung 2
R Bild drehen Spiele- und Multimedia-Programmierung 24
J Bild generieren Spiele- und Multimedia-Programmierung 5
X Bild auf aktueller position drehen Spiele- und Multimedia-Programmierung 2
K Java2d Bild als JPG oder so speichern Spiele- und Multimedia-Programmierung 10
coolian opengl von scale in breite und höhe konvertieren Spiele- und Multimedia-Programmierung 23
A Image in BufferedImage konvertieren Spiele- und Multimedia-Programmierung 2
O Image konvertieren in monochrom scharz/weiß Spiele- und Multimedia-Programmierung 3

Ähnliche Java Themen

Neue Themen


Oben