# Png transparent



## Kr0e (31. Mai 2009)

Hi,
wie kann man ein transparent gespeichertes png (also mit alpha kanal) mit diesem alpha kanal z.b. auf einem jframe darstellen ?


----------



## Guybrush Threepwood (31. Mai 2009)

Im Grunde ist das recht einfach: Du musst das PNG in ein BufferedImage laden. Der Alpha-Kanal wird da automatisch berücksichtigt. Beispiel:

```
public static BufferedImage loadImage(String ref) {
		BufferedImage bimg = null;
		try {

			bimg = ImageIO.read(new File(ref));
		} catch (Exception e) {
			System.err.println("Error loading image file " + ref);
			e.printStackTrace();
		}
		return bimg;
	}
```
 (wobei ref der Dateipfad ist)
Zur Anzeige gibt es verschiedene Möglichkeiten. Man kann das Bild als ImageIcon in einem JLabel darstellen. Eine andere wäre eine eigene, von JFrame abgeleitete Klasse, in welcher Du die paintComponent-Methode überschreibst, z.B. so:

```
private BufferedImage originalImage = ...;

    public void paintComponent(Graphics g) {
        Graphics2D g2 = (Graphics2D)g;
        g2.drawImage(originalImage, 0, 0, originalImage.getWidth(), originalImage.getHeight(), null);
    }
```
Hier könntest Du auch automatisch das Bild auf die Größe des JFrame skalieren usw. 


Ciao,
Guybrush


----------

