Hallo
Wie kann ich mit Graphics transparente Bilder zeichnen?
Hier mal meine Code-Schnippsel:
Klasse GameAni:
Klasse JImagePanel2:
Die Bilder haben einen Charakter drauf mit einem transparenten Hintergrund. Gibt es einen einfachen Weg dies zu ermöglichen? Ich habe auch gehört, dass man durch jeden Pixel im BufferedImage gehen kann um nachzuprüfen, ob es transparent ist und es mit einem Wert zu beschreiben, der in Graphics transparent gezeigt wird. Allerdings weiss ich nicht wie das geht.
Ich habe hier sowieso gleich ein weiteres Problem. Mein Bild hat eine Höhe von 35 px und 77 px in der Breite. Allerdings wird das Bild mit einer Breite von 35 px gelesen und einer Höhe von 77 px. Bei den anderen Bildern klappt es aber. Wo könnte da der Fehler sein?
Achja, wie kann man aus BufferedImage Bereiche ausschneiden? Ich will, falls niemand eine Lösung zum Hauptproblem kennt, versuchen es mit einem JLabel zu lösen und müsste das dafür wissen.
MfG SurviveX
Wie kann ich mit Graphics transparente Bilder zeichnen?
Hier mal meine Code-Schnippsel:
Klasse GameAni:
Code:
BufferedImage img1,img2;
...
img2 = loadImage("MajinVegeta.PNG");
pan2 = new JImagePanel2("Akteur 1",img2,0,0);
...
pan1.setLayout(null);
pan1.setBounds(0,0,pan1.getImageH(),pan1.getImageW());
...
public BufferedImage loadImage(String ref){
BufferedImage bimg = null;
try {
bimg = ImageIO.read(new File(ref));
} catch (Exception e){
e.printStackTrace();
}
return bimg;
}
...
Klasse JImagePanel2:
Code:
public class JImagePanel2 extends JPanel{
private BufferedImage image;
int x, y;
int positionx,positiony;
String name;
public JImagePanel2(String name,BufferedImage image, int x, int y) {
super();
this.image = image;
this.x = x;
this.y = y;
this.name = name;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, x, y, null);
}
// Get-/Set-Methoden für die Variablen
...
}
Die Bilder haben einen Charakter drauf mit einem transparenten Hintergrund. Gibt es einen einfachen Weg dies zu ermöglichen? Ich habe auch gehört, dass man durch jeden Pixel im BufferedImage gehen kann um nachzuprüfen, ob es transparent ist und es mit einem Wert zu beschreiben, der in Graphics transparent gezeigt wird. Allerdings weiss ich nicht wie das geht.
Ich habe hier sowieso gleich ein weiteres Problem. Mein Bild hat eine Höhe von 35 px und 77 px in der Breite. Allerdings wird das Bild mit einer Breite von 35 px gelesen und einer Höhe von 77 px. Bei den anderen Bildern klappt es aber. Wo könnte da der Fehler sein?
Achja, wie kann man aus BufferedImage Bereiche ausschneiden? Ich will, falls niemand eine Lösung zum Hauptproblem kennt, versuchen es mit einem JLabel zu lösen und müsste das dafür wissen.
MfG SurviveX