Bestimmte Pixel transparent erscheinen lassen

Hallo zusammen!
Ich versuche mich seit einiger Zeit in einem kleinen Aufbauspiel.
Dazu benutze ich Bilddateien, die im Hintergrund transparent sind. Da ich aber die Ressourcen nicht selber mache, ist der Hintergrund im Original Pink statt transparent. Das heißt, ich muss bei allen Bildern den Hintergrund ändern. Da das aber zu viele sind, um die einzeln zu bearbeiten, müsste ich sie entweder mit einem Programm alle "umwandeln", oder direkt mit Java alle Pixel, die Pink sind, transparent erscheinen zu lassen. Bei Delphi funktioniert das, aber als Umsteiger weiß ich nicht wie das bei Java geht. Irgendwelche Lösungsvorschläge oder Programme?

Danke schon mal im voraus! :)
 

Marco13

Top Contributor
Grundsätzlich geht sowas mit ColorConvertOp (Java Platform SE 6) . Die hat aber Nachteile:
- Sie "from scratch" selbst zu verwenden ... hui, ist ein bißchen tricky, weil man da mit ColorModels und ColorSpaces rumhantiert, und das immer ein bißchen kompliziert ist, also ggf. websuchen nach "ColorConvertOp example" und schauen, ob davon was passt
- Sie ist recht langsam. Richtig schnell wird das Arbeiten mit BufferedImages nur, wenn man den Typ der Images genau kennt und auf die Abstraktionen verzichtet, und direkt auf den Rohdaten arbeitet (da sollte man aber wissen, was man tut).

Sowas wie
Java:
int pink = Color.PINK.getRGB();
int transparent = 0;
for (int x=0; x<image.getWidth(); x++)
{
    for (int y=0; y<image.getHeight(); y++)
    {
        if (image.getRGB(x,y) == pink) image.setRGB(x,y,transparent);
    }
}
ist nicht das allerperformanteste, aber sehr einfach und intuitiv, und IMHO ein guter Trade-Off zwischen Performance, Abstraktion und Einfachheit
 
- Sie ist recht langsam. Richtig schnell wird das Arbeiten mit BufferedImages nur, wenn man den Typ der Images genau kennt und auf die Abstraktionen verzichtet, und direkt auf den Rohdaten arbeitet (da sollte man aber wissen, was man tut).
Naja, muss ja nur einmal beim Start konventiert werden und wird dann gespeichert.

Aber ich wusste gar nicht, dass 0 für transparent steht statt schwarz! :D
Danke für deine schnelle Hilfe!
 
Ähm, nee irgendwie ist 0 doch schwarz und nicht transparent, bei mir wird jetzt statt Pink scharz angezeigt. Gibt es denn irgendein anderen Farbwert für transparent?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
StrikeTom Auto in bestimmte Richtung fahren lassen Spiele- und Multimedia-Programmierung 37
Meldanor Bestimmte Fläche anklicken - Wie elegant lösen? Spiele- und Multimedia-Programmierung 14
BraunBerry Java Game Pixel "einfärben" Spiele- und Multimedia-Programmierung 6
T Probleme bei "Pixel-Fighting"-Spiel: Unausgewogene Mannschaften??? Spiele- und Multimedia-Programmierung 4
Q Mehr objekte darstellen als Pixel vorhanden Spiele- und Multimedia-Programmierung 6
Androbin Pixel-genaue Kollisionserkennung Spiele- und Multimedia-Programmierung 5
M pixel auslesen in JOGLE Spiele- und Multimedia-Programmierung 3
B Java Pixel Malen Spiele- und Multimedia-Programmierung 3
M Pixel eines BufferedImage bearbeiten (Performance) Spiele- und Multimedia-Programmierung 23
Kr0e OpenGL .. Pixel Buffer Objekt oder Frame Buffer Object? Spiele- und Multimedia-Programmierung 2
Steev LWJGL: org.lwjgl.LWJGLException: Pixel format not accelerated Spiele- und Multimedia-Programmierung 9
M pixel perfect collision detection bei rotierenden Bildern Spiele- und Multimedia-Programmierung 13
G Pixel setzen mit TYPE_INT_ARGB Spiele- und Multimedia-Programmierung 10
D cm in pixel Spiele- und Multimedia-Programmierung 37
R int[] der Pixel aus PNG oder JPG ? Spiele- und Multimedia-Programmierung 2
P Bild, Pixel- / Bereichsfarbe auslesen Spiele- und Multimedia-Programmierung 12
G Pixel Häufigkeiten entsprechent einfärben Spiele- und Multimedia-Programmierung 6
K Einzelne Pixel in einem Bild lesen Spiele- und Multimedia-Programmierung 5
S BMP-Bild Pixel für Pixel bearbeiten Spiele- und Multimedia-Programmierung 1
V Tranzparente Pixel Spiele- und Multimedia-Programmierung 5
S Pixel zeichnen Spiele- und Multimedia-Programmierung 3
G 2 dim. Pixel Array in AWT? Spiele- und Multimedia-Programmierung 7
B LWJGL Manche Seiten werden transparent angezeigt Spiele- und Multimedia-Programmierung 2
Devil0s Magenta zu transparent | Spritesheet Spiele- und Multimedia-Programmierung 2
agentone BufferedImage transparent löschen Spiele- und Multimedia-Programmierung 12
J JTable transparent Spiele- und Multimedia-Programmierung 2
I weiß = transparent Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen

Neue Themen


Oben