Magenta zu transparent | Spritesheet

Devil0s

Aktives Mitglied
Ich programmiere grade ein kleines Spiel in dem man einen Charakter bewegen soll.
Ich will ein Bild einlesen, es teilen und die Bilder ausgeben.
Da in einem Spritesheet so ist, dass es eine Hintergrundfarbe gibt (z.b. Magenta) muss man die Pixel die diesen Farbcode haben in transparente Pixel umwandeln.
Da durch Google herausgefunden habe, dass es keinen Farbcode fuer transparenz gibt.
Nun haette ich gerne eine Loesung wie ich mein Problem loesen koennte.

Java:
for (int y = 0; y < spriteSheet.getHeight(); y++) {
			for (int x = 0; x < spriteSheet.getWidth(); x++) {
				if (spriteSheet.getRGB(x, y) == 0xFFFF00FF) {
					spriteSheet.setRGB(x, y, 0xFF000000);
				}
			}
		}
 
S

Spacerat

Gast
Transparenz mus vom Farbmodell des BufferedImage unterstützt werden. Wird es das nicht, wird der Alphakanal schlicht mit 255 überschrieben, da hilft dann nur das Wandeln in ARGB. Ausserdem muss der Alphawert für Transparenz 0 und nicht 255 sein, das bedeutet: [c]0xFFFF00FF & 0x00FFFFFF[/c].
 
Zuletzt bearbeitet von einem Moderator:

Ähnliche Java Themen


Oben