AW: PNX-Convert
Die Dateilänge spielt schon eine gewisse Rolle, ja.
Schwierig zu erklären...
Die PNX-Dateien sind komprimiert. Also sinngemäß vergleichbar wie z.B. ".zip", ".rar" usw.
Zuerst müssen sie also dekomprimiert werden. Erst dann habe ich die "echte" Dateilänge.
Dieser Wert, der sich aus dem Dekomprimieren ergeben muß, steht übrigens auch im Feld "Größe".
Erst dann, wenn die Datei unkomprimiert vorliegt, kann ich sie dekodieren. Also das eigentliche PNX-Format gewissermaßen entschlüsseln und in eine neutrale RGBA-Struktur (Rot, Grün, Blau, Alpha/Transparenz) umwandeln. Anschließend wird das Ergebnis dann in PNG umgewandelt.
So ist die Arbeitsweise des Programmes.
Bleiben wir mal beim dekomprimieren. Dort allein können schon die verschiedensten Fehler auftreten:
1. Zuwenig Daten,
2. Zuviel Daten,
3. Die noch komprimierten Daten enthalten einen Fehler - kennt bestimmt jeder von WinRAR, wenn dort die Meldung mit dem CRC-Fehler erscheint.
Wenn das Bild dann endlich dekomprimiert ist, können auch bei diesen Daten alle genannten Fehler noch einmal auftreten.
Das war jetzt nur mal, um aufzuzeigen, an was man beim schreiben eines Tools so alles denken muß...
Natürlich kann man programmtechnisch nur solche Fehler berücksichtigen, an die man auch gedacht hat. Es kann durchaus passieren, das sich dann in der Praxis noch ganz andere Fehler zeigen...
Nennt mir mal ein Programm oder Betriebssystem, was noch nie ein Bugfix erfahren hat - die Liste dürfte sehr klein sein... :emoticon-0138-think
.........
Aber nun zu dem fehlerhaften Bild zurück. In diesem konkreten Fall enthält es zuviel Daten, die zudem in sich nicht konsistent sind. Das heißt, es gibt in dem Falle einen Abbruch beim dekomprimieren. Allerdings sind zu dem Zeitpunkt schon alle benötigten (entpackten) Daten vorhanden, so daß das Bild trotzdem erstellt werden kann.
Wenn man es dann hinterher wieder in PNX wandelt, ist es fehlerfrei.
Bild 1, rechte Seite zeigt die Eigenschaften vom originalen, fehlerhaften PNX, linke Seite die vom erneut in PNX gewandelten Bild, das dann natürlich ohne Fehlermeldung durchläuft.
Bild 2 ist das Bild selbst.
Ich hoffe, die Erklärung war einigermaßen verständlich?