Nein, das verdammte weisse Rechteck welches das Bild umgibt soll nicht gezeichnet werden!
-
Also, wie kann ich das machen? Also bestimmen das eine bestimmte Farbe nich in den Grafikspeicher kopiert werden soll?
-
Sehr einfache Möglichkeit: mit einem Grafikprogramm das Bild in ein gif (oder png) mit transparentem Hintergrund umwandeln.
Sonst hängt das natürlich auch von der Api ab, die du verwendest, ich geh jetzt mal von der Standard-Api aus (Java2D):
Soweit ich mich erinnere, gibt es dort keine vollkommen triviale Lösung ala setTransparentColor(Color x) oder drawTransparent().
Du musst dir wohl selber was basteln, zum Beispiel in der Art:Es gibt ne Klasse (java.awt.image.)BufferedImage, die eine Methode getRaster() hat. Diese gibt dir eine Instanz eines WritableRasters heraus. Diese wiederum kannst du mit den Methoden setPixel(int x,int y,int[]color) und getPixel(int x,int ,int[]color) setzen und auslesen. Wenn dein BufferedImage einen Alpha-Channel hat (kannst du im Konstruktor so festlegen), dann kannst du den Alpha-Wert bestimmter Pixel auf 0 setzen und damit werden die entsprechenden Pixel dann bei Graphics.drawImage(myBufferedImage,...) transparent gezeichnet