Hi,
Ich bin gerade dabei meine TGA Komponente mit einer SaveToFile() Methode auszustatten. LoadFromFile klappt ja schon.
Zunächst scheint ds sehr simpel zu sein. Den header erstelen und dann zusammen mit den Daten in eine Datei schreiben.
Dummerweise muss man dazu wissen wie der Header aufgebaut ist. Die Header Feldpositionen zum lesen hatte ich aus einem Tutorial das nur den Lesezugriff behandelt hat und deshalb den Header nicht vollständig erklärt hat.
Also hab ich mal im Internet geschaut. Der link bei wozit zum TGA Format funktioniert leider nicht. Der nächstbeste Treffer war Wikipedia (natürlich
![:)](images/smiles/icon_smile.gif)
)
de.wikipedia.org/wiki/Targa_Image_File
Also hübsch einen header record gedrechselt und mal versucht das Testfile (von dem ich ja weiss das es einen gültigen Header hat) zu laden.
Irgendwie geht es da aber gewaltig daneben.
Ich bekomme:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| ImgageIDLen: 0 HasImgageID: 0 ImageType: 2 PalBegin: 0 PalLen: 0 PalBitDepth: 0 MapXZero: 0 MapYZero: 512 ImgWidth: 512 ImgHeight: 2080 PixelBitDepth: 0 ImgAttributes: 0 |
Also entweder hab ich in meinem Header record etwas vergessen, oder der Wikipedia Artikel stimmt so nicht ganz....
Die ersten drei Werte scheinen ja ok zu sein. Dann kommen die Nullen für Origin X/Y (laut WP standardmäßig Null)
Da muss irgendetwas fehlen da die Bildbreite/höhe um genau ein wert versetzt ist.
Entweder ist da was ein word wo WP sagt es wäre ein byte oder so etwas..
Und 2080 ist auch sicher nicht die PixelDepth.
Endlich habe ich dann die Orginal SPecs gefunden :
www.dca.fee.unicamp....nas/ea978/tgaffs.pdf
Aber da steht es eigentlich genauso ...
Das Testbild habe ich mit Photoshop erzeugt.
Die aktuelle Version ist zum Rumprobieren angehängt
(Der button "read header" liest nur den Header aus. Es wird kein objekt erzeugt.)
Cheers,
Catweasel
Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.