# Mapeditor, PNG viel langsamer als GIF ?



## para_ (1. Mai 2007)

Hm hi, hab mal wieder ein Problem..

Habe mich an nem Leveleditor versucht und die MapAnsicht so aufgebaut, dass ich für die Map eine neue Klasse gemacht hab, die sich von JPanel ableitet.
Die einzelnen Tiles sind dann alle von JComponent abgeleitet und besitzen alle je ein Bild was sie malen.
Dazu kommt ein JScrollPane, weil die Map nicht immer auf den Bildschirm passt wenn sie zu groß ist.


Wenn die Bilder GIFs sind, ist alles relativ schnell (ich merke bei kleinen bis mittelgroßen Karten kein stocken beim scrollen oder Kartenteil ändern), aber sobald ich anstatt GIFs PNGs nehme, laggt es sogar bei kleinen Maps beim scrollen.

Wenn sich jemand den Sourcecode anschauen will kann ich den gerne verschicken (pn an mich). 
Würde ihn jetzt halt nich gern hier posten weil ich nich weiss was da relevant is (und der auch ziemlich lang ist), zumal es mit GIFs ja nicht stockt (auch wenn ich nur 1 PNG lade und das das einzige Terrain auf der map ist, stockt es, im Gegensatz dazu kann ich locker 30++ GIFs laden und es stockt noch nicht..)

Liegt das stocken an der Transparenz von PNGs? Ich muss jedenfalls PNGs verwenden.. :S


----------



## Wildcard (1. Mai 2007)

Du musst ein sinnvolles ColorModel erstellen.
GIF ist (sowohl auf der Platte als auch das resultierende ColorModel im Speicher) sehr klein und sparsam.
Überleg dir was dein Image können soll und erstell dir ein BufferedImage des entsprechenden Typs.


----------



## Wildcard (1. Mai 2007)

Siehe dazu folgender Thread:
http://www.java-forum.org/de/viewtopic.php?t=45011


----------



## para_ (1. Mai 2007)

```
BufferedImage img = ImageIO.read( new File("src/Images/map_grass.png"));
			BufferedImage bild = new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_BGR);
            bild.createGraphics().drawImage(img, 0, 0, null);
			b.put(none, bild);
```

So funktioniert es erstmal, danke 

bzw den type muss ich noch anpassen auf meine Anforderungen, da muss ich mal schaun was ich brauch


----------

