BufferedImage zeichnen

Network

Top Contributor
Hi,

ich möchte ein Spiel programmieren. Ich habe für den Hintergrund mehrere 30x30Pixel Hintergrundtiles erstellt.
Ich möchte nun auf diesen Tiles einen Hintergrund generieren, indem ich die einzelnen Bilder mehrmals nebeneinander und untereinander kopiere und in ein BufferedImage zeichne.

Aber irgendwie funtkioniert das nicht so wie geplant.

Hier mein Code:
Java:
public ImageIcon SetBackground( int w, int h )
	{
		try 
		{
			BufferedImage bfimg = new BufferedImage( w, h, BufferedImage.TYPE_INT_ARGB_PRE );
			BufferedImage bfbgtile;
			bfbgtile = ImageIO.read( new File( "Images/Terrain/Texturen/Vorlage_Erde_3.png" ) );
			Graphics2D g2d = (Graphics2D) bfbgtile.getGraphics();
			for( int i = 0; i < h; i+=30 )
			{
				for( int j = 0; j < w; j+=30 )
				{
					g2d.drawImage( bfimg, j, i, null );
				}
			}
			ImageIcon iibackground = new ImageIcon( bfimg );
			return iibackground;
		} 
		catch (IOException e) {e.printStackTrace(); return null;}
	}

Weiss jmd. was ich falsch mache?
Eine Exception wird nicht geworfen, aber wenn ich das zurückgegebene ImageIcon einem JLabel zuordne, passiert nichts. Das JLabel bleibt schwarz... (hab ich schwarz gemacht um zu kontrollieren ob das JLabel überhaupt auf dem JFrame liegt.)

Vielen Dank schonmal
 

Network

Top Contributor
Also ich hab jetzt mehrere Versuche gemacht:

1. bfbgtile sofort nach dem Laden auf ein JLabel mit "setIcon" zeichnen -> wird angezeigt (Also keine Frage der Dauer)
2. bfimg in dem selben Codeabschnitt mit "setIcon" zuordnen -> nichts
3. Die BufferedImage Eigenschaften umändern... Also Translucent, Type_Int_ARGB... etc. alles mal versucht... manchmal wird das JLabel schwarz angezeigt manchmal nicht. Aber keine Spur vom Bild :(
4. Dem bfimg, das Bild bereits zuweisen, und das bfbgtile auf das bfimg in die Mitte zeichnen... -> Nichts, das bfimg ist immernoch das selbe... :(
 
S

SlaterB

Gast
soll
g2d = (Graphics2D) bfbgtile.getGraphics();
nicht eher
g2d = (Graphics2D) bfimg.getGraphics();
heißen?
wie gesagt: nicht groß mit unkontrollierbaren Bildern herumhantieren, sondern erstmal eine einfache Linie malen..

Java:
public class TestGUI extends JFrame {
	public TestGUI() throws Exception {
		BufferedImage bfimg = new BufferedImage(200, 200,
				BufferedImage.TYPE_INT_ARGB_PRE);
		BufferedImage bfbgtile;
//		bfbgtile = ImageIO.read(new File(
//				"Images/Terrain/Texturen/Vorlage_Erde_3.png"));
//		Graphics2D g2d = (Graphics2D) bfbgtile.getGraphics();
//		for (int i = 0; i < 5; i += 30) {
//			for (int j = 0; j < 5; j += 30) {
//				g2d.drawImage(bfimg, j, i, null);
//			}
//		}
		Graphics2D g2d = (Graphics2D) bfimg.getGraphics();
		g2d.setColor(Color.YELLOW);
		g2d.fillRect(0, 0, 1000, 1000);
		g2d.setColor(Color.GREEN);
		g2d.drawLine(4, 4, 20, 22);
		
		ImageIcon iibackground = new ImageIcon(bfimg);
		JLabel l = new JLabel(iibackground);
		l.setBorder(BorderFactory.createLineBorder(Color.BLUE));

		add(l);
		setSize(350, 300);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
	}

	public static void main(String[] args)throws Exception {
		new TestGUI();
	}
}
 

Network

Top Contributor
Tatsache... :autsch: :D

Ich dachte g2d.drawImage(); zeichnet die g2d Daten in das in der Klammer angegebene Bild...

Funktioniert jetzt wunderbar.

vielen Dank
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Swing BufferedImage zeichnen AWT, Swing, JavaFX & SWT 1
C Swing BufferedImage zeichnen und JLabels setzen. AWT, Swing, JavaFX & SWT 17
Luk10 BufferedImage auf ein anderes BufferedImage zeichnen AWT, Swing, JavaFX & SWT 6
P Image mehrfach in ein BufferedImage zeichnen AWT, Swing, JavaFX & SWT 7
P Swing Vom BufferedImage bei paintComponent nur soviel zeichnen, wie nötig AWT, Swing, JavaFX & SWT 3
Developer_X Swing Auf ein BufferedImage mit Graphics/Graphics2D zeichnen AWT, Swing, JavaFX & SWT 6
R JPanel - BufferedImage - zeichnen großer Bilder AWT, Swing, JavaFX & SWT 2
R Zeichnen von Zahlen in BufferedImage AWT, Swing, JavaFX & SWT 6
P Problem beim Zeichnen auf ein BufferedImage AWT, Swing, JavaFX & SWT 4
I Arbeitsspeicherverbrauch BufferedImage.TYPE_INT_RGB vs. TYPE_3BYTE_BGR AWT, Swing, JavaFX & SWT 6
H BufferedImage zurücksetzen funktioniert nicht AWT, Swing, JavaFX & SWT 12
L AWT Ändern der Farbe eines BufferedImage mit Farbähnlichkeit AWT, Swing, JavaFX & SWT 5
I GEmaltes BufferedImage löschen AWT, Swing, JavaFX & SWT 3
cool_brivk24 BufferedImage einem ClickEvent hinzufügen AWT, Swing, JavaFX & SWT 13
cool_brivk24 AWT BufferedImage wird nicht geladen AWT, Swing, JavaFX & SWT 17
J linken Bildausschnitt eines BufferedImage abschneiden AWT, Swing, JavaFX & SWT 4
Zar von Domarus JFrame zu BufferedImage konvertieren AWT, Swing, JavaFX & SWT 3
S 2D-Grafik User-BufferedImage rotieren im Zentrum und ohne "anpassung" AWT, Swing, JavaFX & SWT 2
C Pixel-Rendering/Animation Performance in BufferedImage AWT, Swing, JavaFX & SWT 1
G Subimage von BufferedImage speichern AWT, Swing, JavaFX & SWT 4
D JPanel Graphic2D als BufferedImage Speichern AWT, Swing, JavaFX & SWT 5
D BufferedImage -> Feature Extraktion. Unterschiedliche BufferedImage imageTypes problem AWT, Swing, JavaFX & SWT 4
I 2D-Grafik Shape aus BufferedImage "löschen" AWT, Swing, JavaFX & SWT 2
M 2D-Grafik LookupOp Operation auf BufferedImage AWT, Swing, JavaFX & SWT 7
GianaSisters 2D-Grafik BufferedImage.getSubimage - Frage AWT, Swing, JavaFX & SWT 7
P BufferedImage schlechte Qualität beim Abspeichern AWT, Swing, JavaFX & SWT 9
S BufferedImage als schwarz-weiß-Bild AWT, Swing, JavaFX & SWT 3
Luk10 BufferedImage[...].getData() vs BufferedImage.setRGB() AWT, Swing, JavaFX & SWT 2
D Schnelles kopieren von Pixeln in ein BufferedImage AWT, Swing, JavaFX & SWT 25
J Flackern wie mit BufferedImage beheben AWT, Swing, JavaFX & SWT 4
N Swing BufferedImage neu laden AWT, Swing, JavaFX & SWT 10
N 2D-Grafik BufferedImage, Line2D, Swing und die Probleme AWT, Swing, JavaFX & SWT 5
P BufferedImage auf JPanel AWT, Swing, JavaFX & SWT 11
K 2D-Grafik BufferedImage eingelesen, welches Modell?! AWT, Swing, JavaFX & SWT 2
T BufferedImage bei paintComponent AWT, Swing, JavaFX & SWT 6
C 2D-Grafik BufferedImage laden, Frage zum Code AWT, Swing, JavaFX & SWT 2
0x7F800000 2D-Grafik int[] zu BufferedImage konvertieren AWT, Swing, JavaFX & SWT 27
H 2D-Grafik BufferedImage aus Integer-Array AWT, Swing, JavaFX & SWT 3
Luk10 2D-Grafik BufferedImage sauber rotieren AWT, Swing, JavaFX & SWT 16
A BufferedImage nach dem Speichern immer schwarz AWT, Swing, JavaFX & SWT 8
J Bild aus Datei in BufferedImage laden AWT, Swing, JavaFX & SWT 4
E BufferedImage Alphaknal ein- und ausblenden AWT, Swing, JavaFX & SWT 7
D BufferedImage Größe skalieren AWT, Swing, JavaFX & SWT 2
B 2D-Grafik BufferedImage Performance AWT, Swing, JavaFX & SWT 3
Y frage zu BufferedImage AWT, Swing, JavaFX & SWT 7
E AWT RenderedImage aus BufferedImage erzeugen, um Bild abzuspeichern? AWT, Swing, JavaFX & SWT 4
S Unterscheiden ob ein Graphics-Objekt von einer JComponent oder einem BufferedImage kommt..? AWT, Swing, JavaFX & SWT 4
A 2D-Grafik BufferedImage wird nicht eingezeichnet AWT, Swing, JavaFX & SWT 3
G 2D-Grafik BufferedImage Hintergrund immer schwarz AWT, Swing, JavaFX & SWT 4
J AWT BufferedImage to 2DArray AWT, Swing, JavaFX & SWT 10
R Bild drehen UND skalieren (Image bzw BufferedImage) AWT, Swing, JavaFX & SWT 5
J JPanel in Bufferedimage AWT, Swing, JavaFX & SWT 3
1 BufferedImage in byte[], dann in String und zurück AWT, Swing, JavaFX & SWT 7
J Swing paintComponent() - repaint() - BufferedImage anzeigen AWT, Swing, JavaFX & SWT 5
C BufferedImage-Fehler? Falsches Bild wir gezeichnet AWT, Swing, JavaFX & SWT 5
B BufferedImage Builder AWT, Swing, JavaFX & SWT 15
F Transparentes BufferedImage über BufferedImage AWT, Swing, JavaFX & SWT 12
F Größe von BufferedImage ändern AWT, Swing, JavaFX & SWT 27
I Swing JComponent als BufferedImage speichern AWT, Swing, JavaFX & SWT 18
Dragonfire Swing Zoom-Vorgang optimieren [BufferedImage] AWT, Swing, JavaFX & SWT 2
2 Memory Leak mit BufferedImage !! AWT, Swing, JavaFX & SWT 15
X BufferedImage maximiert in JFrame anzeigen? AWT, Swing, JavaFX & SWT 2
R JTable - TableCellRenderer - BufferedImage AWT, Swing, JavaFX & SWT 9
D BufferedImage und Graphics2D AWT, Swing, JavaFX & SWT 3
G BufferedImage.getRGB() mit 3 int-Werten vergleichen AWT, Swing, JavaFX & SWT 2
Luma BufferedImage wird nicht gezeichnet AWT, Swing, JavaFX & SWT 3
G keine ScaledInstance von BufferedImage? AWT, Swing, JavaFX & SWT 6
S BufferedImage & Scaling: Altes Problem im neuen Gewand AWT, Swing, JavaFX & SWT 2
G zu viele/große BufferedImage führt zu Java heap space AWT, Swing, JavaFX & SWT 5
G BufferedImage und jpg --> maximale Qualität AWT, Swing, JavaFX & SWT 9
F HTML Text irgendwie auf BufferedImage bringen AWT, Swing, JavaFX & SWT 3
R BufferedImage Problem AWT, Swing, JavaFX & SWT 2
G Problem mit BufferedImage und imageIO AWT, Swing, JavaFX & SWT 2
S BufferedImage drehen AWT, Swing, JavaFX & SWT 3
? ActionListener auf BufferedImage AWT, Swing, JavaFX & SWT 11
M BufferedImage mit html interpretierten String beschriften AWT, Swing, JavaFX & SWT 3
A Probelme mit großen BufferedImage in paintComponent AWT, Swing, JavaFX & SWT 7
B Farbtiefe eines BufferedImage verringern AWT, Swing, JavaFX & SWT 3
F ImageIcon -> BufferedImage AWT, Swing, JavaFX & SWT 2
T Performance Problem bei BufferedImage AWT, Swing, JavaFX & SWT 3
F Animiertes Gif als BufferedImage AWT, Swing, JavaFX & SWT 10
L Anzeigen von fotos: ImageIcon oder BufferedImage + paint() ? AWT, Swing, JavaFX & SWT 5
C Rotate BufferedImage --> Bild unvollständig AWT, Swing, JavaFX & SWT 5
U Streifen hinter bewegtem BufferedImage AWT, Swing, JavaFX & SWT 13
M BufferedImage skalieren AWT, Swing, JavaFX & SWT 6
T BufferedImage verkleinern Resultat ist zu pixelig. AWT, Swing, JavaFX & SWT 6
G Image Object speichern oder in ein BufferedImage umwandeln AWT, Swing, JavaFX & SWT 2
B BufferedImage aus einer Datei AWT, Swing, JavaFX & SWT 4
C Farben in BufferedImage ändern ? AWT, Swing, JavaFX & SWT 2
J Image to BufferedImage AWT, Swing, JavaFX & SWT 5
T BufferedImage kopieren AWT, Swing, JavaFX & SWT 3
T BufferedImage Farbe "Transparent" AWT, Swing, JavaFX & SWT 21
T BufferedImage + bestimmten bereich ausfüllen AWT, Swing, JavaFX & SWT 3
M BufferedImage Größe? AWT, Swing, JavaFX & SWT 10
U Löschen eines BufferedImage AWT, Swing, JavaFX & SWT 7
J Image aus BufferedImage ohne AWT AWT, Swing, JavaFX & SWT 5
V Image in BufferedImage AWT, Swing, JavaFX & SWT 3
J BufferedImage aus byte-Array erstellen AWT, Swing, JavaFX & SWT 3
M Mandelbrot mit BigDecimal erstellen und in der UI zeichnen, funktionierte nicht. AWT, Swing, JavaFX & SWT 1
H JavaFX Canvas neu zeichnen anstoßen AWT, Swing, JavaFX & SWT 34

Ähnliche Java Themen

Neue Themen


Oben