Bild mit transparenter Farbe

Jneu

Mitglied
Hallo,
ich bin gerade dabei die ersten Schritte mit Jawa zu machen und komme bei einem Problem nicht weiter. Ich habe ein Bild mit einer Transparenten Farbe. Beim anzeigen wird aber alles schwarz und das transparente bleibt weiss. Bei einem normalen Bild funktioniert das. Hier mein code und Ximage ist ein .png Bild:
Java:
startbild = im2java(Ximage);
fenster = javax.swing.JWindow
con = javax.swing.ImageIcon(startbild)
beschr = javax.swing.JLabel(con)
fenster.getContentPane.add(beschr)
fenster.setAlwaysOnTop(true);
fenster.pack;

fenster.show

könnt ihr mir da helfen?

Danke
 

haui95

Bekanntes Mitglied
Welches Format hat deine Image Datei ? Probiere doch einmal, dein Image als PNG-Datei zu speichern bzw. zu konvertieren und setze dein Bild mit einem Bildbearbeitungsprogramm transparent.

Oder probiere es, indem du die paint()-Methode überschreibst.

Java:
@Override
public void paintComponent(Graphics graph)
{
  Graphics2D g2d = (Graphics2D) graph;
  g2d.setComposite(AlphaComposite. getInstance(AlphaComposite.SRC_OVER, 0.75f));  // 0.75f evt. auf indivduellen Wert ändern.
 
  g2d.drawImage(new ImageIcon("Bildpfad").getImage(),0,0,getWidth(),getHeight());
}

MfG
 

Jneu

Mitglied
Hallo und erst mal Danke,
mein Image hat die Endung .png (Bild.png) und es funktioniert auch solange ich das Bild (mit einem Bildbearbeitungsprogramm) nicht so ändere, dass ich eine Farbe lösche (transparent setze). Also das .png hat bereits die transparente Farbe. Das Bild.png ist ja nicht mein Problem. Nur beim aufrufen wird alles transparente schwarz. Noch dazu arbeite ich hier mit matlab und das macht die ganze Sache noch komplizierter.
 

Kjubert

Aktives Mitglied
Bist du denn auf das PNG-Format angewiesen? Die Transparenz in GIF-Dateien stellt für swing-Anwendungen und die ImageIO-Geschichten meiner Erfahrung nach keine Probleme dar. Es kann einfach sein (bzw. ist sogar wahrscheinlich), dass irgendeine Komponente, die du benutzt, mit einer PNG in der vorliegenden Form nicht umgehen kann (Stichwort Alpha-Kanal).
Ich meine ich glaube nicht, dass du was falsch machst - vielleicht findest du ja das schwache Glied und dann eine Alternative dazu. Oder probierst es mit GIF.

Viel Erfolg!
 

Jneu

Mitglied
Danke,
na das probier ich gleich mal. Ob das png oder gif oder sonst was ist, ist egal.
Das mit dem Alpha-kanal hab ich auch schon gelesen, aber ich konnte es nicht lösen.
Ich habs jetzt mit .gif und .jpg und .png überprüft. Immer das gleiche. Es geht so nicht.
Irgendwie muss der Alphawert übergeben werden um die Pixel zu finden, die transparent werdn sollen.
Das hab ich gefunden, kann das aber wegen "Inkompetenz" nicht auf meine Zwecke umschreiben :autsch:
Java:
public BufferedImage convertPNG(String filePath,int newW, int newH){
        BufferedImage in = getImage(filePath);
        GraphicsConfiguration gc = in.createGraphics().getDeviceConfiguration();
        BufferedImage out = gc.createCompatibleImage(newW,newH, Transparency.BITMASK);
        Graphics2D g2d = out.createGraphics();
        g2d.setComposite(AlphaComposite.Src);
        g2d.drawImage(in, 0, 0,newW, newH, null);
        g2d.dispose();
        return out;
    }
 
Zuletzt bearbeitet:

Jneu

Mitglied
Ja genau das. Wenn du meinen ersten Beitrag liest, dann müsste ich das nur noch irgendwie einbauen.
Aber wie??
Morgen kauf ich mir ein Java Buch für Dummies ;(
 

L-ectron-X

Gesperrter Benutzer
Kopiere mal diese Datei in das entpackte Verzeichnis und führe sie aus:
Java:
import java.awt.*;
import javax.swing.*;
import javax.imageio.*;

public class TransparentPicturePanel extends JPanel {
   private Image kaefer, landschaft;

   public TransparentPicturePanel() {
      super(new BorderLayout());
      try {
         kaefer = ImageIO.read(getClass().getResource("kaefer_freigestellt.gif"));
         landschaft = ImageIO.read(getClass().getResource("landschaft.jpg"));
      }
      catch(java.io.IOException ioe) {
         ioe.printStackTrace();
      }
      
      setPreferredSize(new Dimension(landschaft.getWidth(this), landschaft.getHeight(this)));
   }
   
   public void paintComponent(Graphics g) {
      super.paintComponent(g);
      Graphics2D g2d = (Graphics2D) g;

      if(landschaft != null) {
         g.drawImage(landschaft, 0, 0, this);
      }

      g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f)); //Halbtransparenz für folgende Zeichenoperation(en)
      if(kaefer != null) {
         g.drawImage(kaefer, 0, 0, this);
      }
   }
   
   public static void main(String[] args) {
      JFrame frame = new JFrame("Bilder kombinieren");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.add(new TransparentPicturePanel());
      frame.pack();
      frame.setLocationRelativeTo(null);
      frame.setVisible(true);
   }
}
Das wäre die Variante als Applikation. Hast du das gesucht?
 

Kjubert

Aktives Mitglied
Java:
         kaefer = ImageIO.read(getClass().getResource("kaefer_freigestellt.gif"));
         landschaft = ImageIO.read(getClass().getResource("landschaft.jpg"));

Da wunderts mich jetzt aber, dass das eine GIF-Datei sein soll. Denn die hat ja keinen Alpha-Kanal und somit keine Möglichkeit zur Halbtransparenz. Oder hab ich da was verpasst? Auf dem Bild da oben sieht mir das doch stark nach Halbtransparenz aus. Oder wurde da getrickst bei der GIF?
Sorry, ich könnte auch einfach in das Projekt gucken - aber mir ists jetzt zu spät...
 

L-ectron-X

Gesperrter Benutzer
Gif kann auch Transparenz speichern, allerdings nicht in einem klassischen Alphakanal.
Das Blatt mit dem Käfer wurde freigestellt, ein Teil des Bildes hat also transparente Pixel. Es wurde über das JPG-Bild gezeichnet.
Zusätzlich wurde das Gif-Bild auch noch mit Java-Methoden halbtransparent gemacht.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
B Bild per KeyListener drehen Java Basics - Anfänger-Themen 1
I Kamera anschließen / Bild machen / Live View / Externe Blitz Java Basics - Anfänger-Themen 19
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
I Datei (Bild) Drucken und wie Druckeinstellung speichern? Java Basics - Anfänger-Themen 3
krgewb byte-Array, das ein Bild repräsentiert Java Basics - Anfänger-Themen 1
H Artefact mit Bild erzeugen Java Basics - Anfänger-Themen 11
R UML-Bild (Erkennung ob static o. nicht) Java Basics - Anfänger-Themen 18
J Bild auf Hintergrundbild zeichnen Java Basics - Anfänger-Themen 5
krgewb Bild itextpdf Java Basics - Anfänger-Themen 2
C Bild in executable JAR File mitgeben Java Basics - Anfänger-Themen 5
VPChief Bild in JEditorPane Java Basics - Anfänger-Themen 9
B Warum bekomme ich kein Bild. Java Basics - Anfänger-Themen 10
S Bild einfügen // NEU Java Basics - Anfänger-Themen 12
N Bild drehen Java Basics - Anfänger-Themen 3
S Ein Bild mit dynamischer Quelle neuzeichnen Java Basics - Anfänger-Themen 12
N GLOOP Bild nicht ansichtbar Java Basics - Anfänger-Themen 5
M Bild in JFrame Java Basics - Anfänger-Themen 1
B Signatur erstellen - Bild ist nur weiß Java Basics - Anfänger-Themen 0
CptK Interface Bild rotieren Java Basics - Anfänger-Themen 17
CptK Interface Bild rotieren Java Basics - Anfänger-Themen 1
Anica Processing Animation Bild-Position ändern Java Basics - Anfänger-Themen 9
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
CptK Interface Curser durch Bild ersetzen & MouseListner Java Basics - Anfänger-Themen 2
M jTextPane Bild anzeigen Java Basics - Anfänger-Themen 6
CptK Bild beim betätigen eines JButtons Java Basics - Anfänger-Themen 6
S Bild über JButton legen Java Basics - Anfänger-Themen 3
B Bild mit Schrift befüllen / Anpassung bei Wortlänge Java Basics - Anfänger-Themen 2
D Google maps bild mit marker versehen Java Basics - Anfänger-Themen 12
D ImageView mit einfarbigem Bild fuellen Java Basics - Anfänger-Themen 3
it_is_all Bild-Pfad wird gefunden, nicht aber Textdatei-Pfad Java Basics - Anfänger-Themen 8
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
M Bild wird von JFrame nicht geladen Java Basics - Anfänger-Themen 12
J Bild in Button einsetzen Java Basics - Anfänger-Themen 6
S button kommt durch bild Java Basics - Anfänger-Themen 13
M Ein Bild durch Objekterzeugung zeichnen Java Basics - Anfänger-Themen 5
B Greenscreen (grüner Hintergrund ersetzen mit Bild) Java Basics - Anfänger-Themen 49
K Interface Kein Bild im .jar-File Java Basics - Anfänger-Themen 15
S Bild in Jar-File mit ImageIO Java Basics - Anfänger-Themen 50
S Bild einfügen Java Basics - Anfänger-Themen 16
binop Bild anzeigen lassen Java Basics - Anfänger-Themen 2
D Bild zu Text Java Basics - Anfänger-Themen 4
I HTML Code in Bild (transparent) konvertieren Java Basics - Anfänger-Themen 0
I Watermark erstellen mit HTML in Bild? Java Basics - Anfänger-Themen 7
D Classpath Bild kann in .jar nicht geladen werden Java Basics - Anfänger-Themen 2
Anfänger2011 Bild programmieren?! Java Basics - Anfänger-Themen 3
8 Eigenes Bild in email einfügen Java Basics - Anfänger-Themen 1
K JTable Bild einfügen Java Basics - Anfänger-Themen 1
L BufferdImage schwarzes Bild nach zusammenfügen zweier Bilder Java Basics - Anfänger-Themen 8
S Bild in JOptionPane Java Basics - Anfänger-Themen 1
C Abfrage nach einem Bild im Array Java Basics - Anfänger-Themen 9
J Umgebungsvariable Programmfenster zeigt kein Bild an Java Basics - Anfänger-Themen 1
J Bild loopen Java Basics - Anfänger-Themen 6
M JFrame Bild einfügen Java Basics - Anfänger-Themen 3
S Bild bei Kontakt ändern Java Basics - Anfänger-Themen 2
C Erste Schritte Bild holen und speichern Java Basics - Anfänger-Themen 1
D Bild in Frame einfügen Java Basics - Anfänger-Themen 11
D Bild im Applet anzeigen Java Basics - Anfänger-Themen 3
F Bild in ein Runnable Jar File packen (eclipse) Java Basics - Anfänger-Themen 2
M Java-Applet: Bild einbinden (getImage) Java Basics - Anfänger-Themen 0
J Ganzes Bild Java Basics - Anfänger-Themen 4
T GUI anstatt Bild schwarzes Rechteck gespeichert Java Basics - Anfänger-Themen 0
A Bild verschwindet! Wieso?? Java Basics - Anfänger-Themen 2
I Bild aus Bereich laden Java Basics - Anfänger-Themen 3
P Bild in JFrame Titelleiste Java Basics - Anfänger-Themen 7
Y Nach Bild-Upload wird Bild nicht angezeigt Java Basics - Anfänger-Themen 1
M Button mit Bild und Text Java Basics - Anfänger-Themen 2
M JSP-Einfaches Bild anzeigen Java Basics - Anfänger-Themen 4
C Bild ins Frame laden und Objekte drüber legen Java Basics - Anfänger-Themen 1
Sogomn Bild will sich nicht skalieren lassen Java Basics - Anfänger-Themen 1
P Ein Bild für GUI (Java-Editor) Java Basics - Anfänger-Themen 4
D Bild für ein paar Sekunden einblenden und wieder ausblenden Java Basics - Anfänger-Themen 1
E Bild per Verzeichnis/JFileChooser auf JPanel laden Java Basics - Anfänger-Themen 13
S Bild auf eine Position rotieren?! Java Basics - Anfänger-Themen 4
P Bild bearbeiten Java Basics - Anfänger-Themen 9
Z Datenmatrix in Bild verwandeln Java Basics - Anfänger-Themen 4
C Bild verschwinden lassen Java Basics - Anfänger-Themen 7
S Bild Icon aus ID3Tag auslesen Java Basics - Anfänger-Themen 4
E Bild vom FileChooser aus via ImageIcon in DB schreiben Java Basics - Anfänger-Themen 16
D Bild zum Panel hinzufügen Java Basics - Anfänger-Themen 8
C Greenfoot: Bei Tastendruck und best. Wert Bild ändern Java Basics - Anfänger-Themen 2
O Auflösung einer Bild-Datei bekommen ohne sie herunterzuladen?? Java Basics - Anfänger-Themen 7
L Bild-Datein "zuschneiden" Java Basics - Anfänger-Themen 11
O DeviantArt-Bild Konverter: Fehler.. Java Basics - Anfänger-Themen 16
K Transparents Bild laden -> Fehlermeldung Java Basics - Anfänger-Themen 6
M Bild einbinden Java Basics - Anfänger-Themen 7
2 Bild auf JApplet zeichnen Java Basics - Anfänger-Themen 18
T Bild laden Java Basics - Anfänger-Themen 7
R Bild in GUI Java Basics - Anfänger-Themen 11
D Eclipse Juno zeigt Bild nicht bei Run Java Basics - Anfänger-Themen 3
Kenan89 Bild mit jar öffnen Java Basics - Anfänger-Themen 4
S Problem bei Bewegung von einem Bild! Java Basics - Anfänger-Themen 2
N Erste Schritte Applet zeichnet Bild nicht Java Basics - Anfänger-Themen 10
J Bild auf JLabel wird nicht angezeigt Java Basics - Anfänger-Themen 11
J Bild einfügen Java Basics - Anfänger-Themen 3
T ASCII Art von Bild erstellen. Java Basics - Anfänger-Themen 32
E Bild OS-unabhängig einbinden mit URL Java Basics - Anfänger-Themen 4
A BufferedImage in Android einbinden - Bild spiegeln -wie? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben