So, nachdem ich lange Zeit abwechselnd keine Zeit und keine Lust hatte, hab ich mich heut mal für ein paar Stunden drangesetzt und einen PNG-Loader für Andorra geschrieben, der nach erfreulich kurzem Debugging auch zu funktionieren scheint. PNG-Sonderfunktionen wie Chromatizitäts- und Gammakorrektur werden nicht durchgeführt, da das zu aufwändig ist und ohne genaue Kentnisse über den Monitor sowieso nichts bringt - ich glaube, dass kaum ein Programm dieses Zeug wirklich benutzt.
Ich habe frecherweise im
CVS die alte AdPNG.pas einfach mal überschrieben. Das hat den Vorteil, dass man sich die PNGImage.pas jetzt sparen kann und das ganze folglich auch unter Linux funktionieren sollte und den Nachteil, dass man jetzt keine PNGs mehr speichern kann - es sei denn, man greift direkt auf PNGImage.pas zu. Da ich mir allerdings kaum vorstellen kann, dass mit Andorra viele Bilder gespeichert werden, sollte das vertretbar sein. Wenn Andreas anderer Auffassung ist, kann man das ja immer noch reverten.
Um jetzt damit PNGs laden zu können, muss man eigentlich nur AdPNG.pas irgendwo in das Projekt einbinden und dann das Bild wie jedes andere laden lassen, Andorra erkennt von selbst, dass es sich um ein PNG handelt und ruft den Loader auf.
Wie bereits gesagt, alle Dateien, die ihr braucht (nämlich AdPNG.pas und AdPNGImage.pas) sind im
CVS.
Sollte irgendwas nicht funktionieren, sagt mir Bescheid, ich habe das mit den exotischsten Formaten getestet, die es gibt, bis hin zu 2 Bit indizierten Schwarzweißbildern mit farbigem Hintergrund und Interlacing und es hat alles funktioniert, aber irgendwas kann man ja immer übersehen.