JPG Bilder überlagern

munuel

Mitglied
Hallo habe folgendes Problem,
Ich möchte ein Jpg-Bild in einem JPanel durch ein anderes Jpg-Bild überlagern.
Dabei soll das ein Bild quasi als Hintergrundbild dienen.
Das Bild welches das Hintergrundbild überlagern soll (und auch viel keiner ist) ,soll später interaktv
vergrössert werden.
Das Problem das ich jetzt habe ist das ich es nicht schaffe das kleinere Bild darzustellen.
Es wird wohl immer von dem grösseren überlagert!

Ich lade bei mir zur Zeit über ein ImagIcon das Bild, und übergebe es einem JLabel
dieses übergebe ich dann einem JPanel!

Liebe Grüsse Johannes

public class Visual extends JFrame {

private Image img;
private JLabel jlFader;
private String sWert;
private Container frameContent;
JPanel jPanel = new JPanel();

public Visual (String title){
super(title);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Frame Content initialisieren
frameContent = this.getContentPane();
frameContent.setLayout(null);



// Image Icon

ImageIcon icon2 = new ImageIcon("Speaker.jpg");
JLabel l2 = new JLabel( icon2 );
l2.setBounds(0,0,55,55);
ImageIcon icon = new ImageIcon("AudivonInnen.jpg");
JLabel l1 = new JLabel( icon );
l1.setBounds(0,0,200,200);

// ImagePanel
JPanel jpImage = new JPanel();
jpImage.setLayout(null);
jpImage.setBounds(0,0,500,400);
jpImage.add(l1); // übergabe Icon an ImagePanel
jpImage.add(l2);

// Übergabe jpImage an den FrameContent

frameContent.add(jpImage);

}
}
 
Hallo!

Was meinst du genau mit überlagern?
Möchtest du nur ein Bild in ein anderes Zeichnen? Oder willst du das eine (z.bsp. kleinere Bild) liehct über das unterliegende drüber blenden und das drunterliegende leicht durchschimmern lassen?

Gruß Tom
 
hi Tomas,
Ja ich möchte gar nicht das der Hintergrund druchschimmert, sonder das nur das das eine Bild in das andere praktisch gezeichnet wird!
 
Hallo!

Code:
/**
 * 
 */
package de.tutorials;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

/**
 * @author Tom
 * 
 */
public class ImageOverlayExample extends JFrame {

	public ImageOverlayExample() {
		super("ImageOverlayExample");
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		try {
			BufferedImage backgroundImage = ImageIO.read(new File(
					"c:/Sonnenuntergang.jpg"));
			BufferedImage foregroundImage = ImageIO
					.read(new File("c:/pac.png"));

			backgroundImage.getGraphics()
					.drawImage(foregroundImage, 0, 0, this);

			JLabel label = new JLabel(new ImageIcon(backgroundImage));

			add(label);

		} catch (IOException e) {
			e.printStackTrace();
		}

		pack();
		setVisible(true);
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new ImageOverlayExample();
	}

}

Gruß Tom
 
hi Tom
super danke für die Hilfe
//statt add.(label)
//habe ich noch in umgeändert:
Container pfTest = this.getContentPane();
pfTest.add(label);

Gruss munuel
 
Zurück