Problem mit PNG Bildern

Status
Nicht offen für weitere Antworten.

Paladin

Bekanntes Mitglied
Hi,

bei dem Spiel was ich zur Zeit schreibe habe ich das folgende Problem:
Ich benutze für einige Objekte png Bilder weil diese Transparenz darstellen können. Also zum Beispiel habe
ich ein Haus welches einen Transparenten Hintergrund hat und das einen Schatten wirft (Ansicht von oben).
Leider wirkt sich die Verwendung von pngs extrem negativ auf die Performance des Spiels aus.
Kann ich die png Bilder in ein anderes Format wandeln welches kleiner ist und trotzdem transparenz unterstützt?

Danke im Voraus

Gruß

Paladin
 
Ok mit der Transparenz das klappt. Aber was ist mit Schatten? Wenn ich mein png Bild
als Gif abspeichere sieht der Schatten einfach sch***** aus.
 
Ein gif hat weniger Farben.
png ist ja nicht aus spaß an der Freude größer als gif.
Performancemäßig dürfte es übrigens keine großen Unterschiede geben, da im Speicher beide Formate gleich groß sind.
 
Wenn ich dich richtig verstanden habe, dann sollte es von der Performance keinen Unterschied machen ob ich in meinem Spiel ein gif oder ein png zeichne.
Entweder ich zeichne die Bilder falsch oder die Aussage kann so nicht ganz stimmen denn wenn ich aus allen Objekten die ich auf den Bildschirm zeichne png's mache fängt die ganze Geschichte ganz übel zu ruckeln an.

Wenn ich mein Spielfeld als gif lade nimmt der Prozess javaw ca. 40MB. Wenn ich aber das Spielfeld als png lade nimmt der Prozess mal locker 95MB.
 
Initial brauchtst du mehr Speicher und Resourcen um ein PNG zu laden.
Sobald du daraus aber ein Image gemacht hast sollte es egal sein, da Image-Objekte nicht mehr komprimiert sind.
Wenn alles geladen ist darf es eigentlich keinen Unterschied in der Zeichengeschwindigkeit mehr geben.
 
Danke für die Hilfe.

Ich werde mal überprüfen warum ich solche Probleme beim darstellen der pngs habe.

Gruß

Paladin
 
Wildcard hat gesagt.:
Initial brauchtst du mehr Speicher und Resourcen um ein PNG zu laden.
Sobald du daraus aber ein Image gemacht hast sollte es egal sein, da Image-Objekte nicht mehr komprimiert sind.
Wenn alles geladen ist darf es eigentlich keinen Unterschied in der Zeichengeschwindigkeit mehr geben.
Aber PNGs können einen Alpha-Kanal haben, GIFs nicht. Bilder mit Alphakanal waren mal ein Performanceproblem in Java. Aber sollte sich das nicht seit Java5/6 gegeben haben...?
 
Das resultierende Image hat doch aber auch bei gifs einen Alphakanal (auch wenn dieser immer 255 oder 0 ist) ???:L
 
ich habe eine Methode die vor dem Bau der GUI geladen wird. Diese lädt die Bilder.
Alle Bilder sind vom Typ BufferedImage.

Code:
public void loadImages() {
	
    try {
        battlefield = ImageIO.read(new File("grafix//battlefield1.gif"));
        tank_solo = ImageIO.read(new File("grafix//tank_solo.png"));
        tank_top = ImageIO.read(new File("grafix//tank_top.png"));
        tank_top_cannonfire = ImageIO.read(new File("grafix//tank_top_cannonfire.png"));
        amucity_lower = ImageIO.read(new File("grafix/AmmuCity.png"));
        amucity_upper = ImageIO.read(new File("grafix/AmmuCityDach.png"));
        statusDiesel_lower = ImageIO.read(new File("grafix/Status_diesel.png"));
        status_glass = ImageIO.read(new File("grafix/Status_Glass_Small.png"));
        ...
    catch(Exception ex) {
        ex.printStackTrace();
    }
}
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben