Ich arbeite gerade an einem Spiel und wollte meinen eigenen PNGReader bauen. Ich kann ganz einfach ImageIO nehmen und das funktioniert dann auch, jedoch ist das ein wenig zu langsam. Mein Ziel ist es die Ladezeit zu beschleunigen indem ich...
1. nicht den Overhead von ImageIO und BufferedImage habe
2. nicht erst das BufferedImage zu ARGB konvertieren muss nur um es dann wieder in ABGR zu konvertieren.
3. es direkt als ein ein dimensionales integer array im ABGR Format einlese
4. unnötige Errorchecks auslasse, da die Texturen für mein Spiel auf jeden Fall korrekt sind
Das ganze funktioniert auch schon für PNGs im ColorType 3 (Indexed).
Ich habe jetzt jedoch ein Problem mit den ColorTypes 2 (RGB) und 6 (RGBA).
Bei ColorType 2 bekomme ich irgendwie nur die Hälfte des Bildes mit selstamen Farben und bei 6 sind die Muster schon richtig jedoch stimmen die Farben nicht.
Mein Source Code kann hier gefunden werden: https://github.com/RalleYTN/Heroica...e/ralleytn/games/heroicafabulis/engine/io/png
Ich habe leider nicht so genau eine Ahnung woran es hakt.
ColorType 6:
ColorType 2:
1. nicht den Overhead von ImageIO und BufferedImage habe
2. nicht erst das BufferedImage zu ARGB konvertieren muss nur um es dann wieder in ABGR zu konvertieren.
3. es direkt als ein ein dimensionales integer array im ABGR Format einlese
4. unnötige Errorchecks auslasse, da die Texturen für mein Spiel auf jeden Fall korrekt sind
Das ganze funktioniert auch schon für PNGs im ColorType 3 (Indexed).
Ich habe jetzt jedoch ein Problem mit den ColorTypes 2 (RGB) und 6 (RGBA).
Bei ColorType 2 bekomme ich irgendwie nur die Hälfte des Bildes mit selstamen Farben und bei 6 sind die Muster schon richtig jedoch stimmen die Farben nicht.
Mein Source Code kann hier gefunden werden: https://github.com/RalleYTN/Heroica...e/ralleytn/games/heroicafabulis/engine/io/png
Ich habe leider nicht so genau eine Ahnung woran es hakt.
ColorType 6:
ColorType 2: