Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi *.bmp-Dateien -> *.tga-Dateien (https://www.delphipraxis.net/99142-%2A-bmp-dateien-%2A-tga-dateien.html)

tweetymr 7. Sep 2007 12:05


*.bmp-Dateien -> *.tga-Dateien
 
Hallo zusammen :)
ich befasse mich seit kurzem mit der konvertierung von Bitmaps zu Targa Dateien.
Ich brauche die Targa dateien für ein Programm um den Hintergrund in Counterstrike zu ändern.
Ich habe es auch schon hin bekommen, dass ich ein targa file bekomme welches das spiel auch erkennt.
Aber dann ingame ist es immer um 180° gedreht :gruebel: da frage ich mich jetzt: warum?
Das einzige das ich über die dateien weiß, ist, dass sie nur beim typ 2 und 10 Targa RGB erkannt werden.
noch was: wenn ich genau das selbe Bitmap nehme und dieses dann in photoshop manuell zu einer .tga datei mache, funktioniert es einwandfrei.
Könntet ihr mir da vielleicht helfen? :oops:
bin jetzt schon dankbar das ihr meinen post lest und hoffe auf eine Lösung meines Problems :thumb:

DGL-luke 7. Sep 2007 12:21

Re: *.bmp-Dateien -> *.tga-Dateien
 
Bitmaps können um 180° gedreht gespeichert werden (also der letzte Pixel unten rechts ist als allererster in der Bitmapdatei gespeichert). Ich glaube, das ist sogar die gebräuchlichere Methode, warum genau weiß ich nicht.
Bei TGAs wird es ähnlich sein.
Da musst du dir mal die RFCs/Dateiformatspezifikationen genau ansehen.

Was für Code benutzt du denn im Moment?

tweetymr 7. Sep 2007 12:26

Re: *.bmp-Dateien -> *.tga-Dateien
 
Ups, da hab ich vielleicht mein Problem ein bisschen zu wenig geschildert. :oops:
Es geht darum, das die bilder normal (also in Grafikprogrammen oder in der Vorschau) ja eigentlich stimmen, sprich richtig herum angezeigt werden.
Nur eben wenn ich im spiel drin bin, dreht es die grafiken um 180° :(
habe grade nicht sehr viel code da, da es meine festplatte vermurgst hat und ich gerade von meinem Laptop aus schreibe :wall:
aber ich guck mal ob ich noch irgendwo im netz was liegen hab^^ dann poste ich das.

DGL-luke 7. Sep 2007 12:34

Re: *.bmp-Dateien -> *.tga-Dateien
 
Wenn du Originalhintergründe nimmst und dir in Photoshop anschaust, sind die richtig herum?

(bzw. wie machen das andere CS-Mapper? Bin ja in der Szene schon ewig nicht mehr drin...)

Luckie 7. Sep 2007 12:42

Re: *.bmp-Dateien -> *.tga-Dateien
 
Zitat:

Zitat von DGL-luke
Bitmaps können um 180° gedreht gespeichert werden (also der letzte Pixel unten rechts ist als allererster in der Bitmapdatei gespeichert). Ich glaube, das ist sogar die gebräuchlichere Methode, warum genau weiß ich nicht.

Das hat historische Gründe. Als Microsoft zusammen mit IBM für Windows und OS/2 das Bitmap Format entwickelt haben, sind sie übereingekommen, den Ursprung des Koordinatensystems aus irgendeinem Grund unten rechts hinzulegen oder so ähnlich war das. Ich habe das nicht mehr so ganz im Kopf und leider im Moment keinen Zugriff auf die Literatur, in der ich das vor langer Zeit mal gelesen habe.

tweetymr 7. Sep 2007 13:34

Re: *.bmp-Dateien -> *.tga-Dateien
 
Zitat:

Zitat von DGL-luke
Wenn du Originalhintergründe nimmst und dir in Photoshop anschaust, sind die richtig herum?

(bzw. wie machen das andere CS-Mapper? Bin ja in der Szene schon ewig nicht mehr drin...)

Also der original hintergrund ist nicht verdreht, nur die bilder die ich von bmp zu tga konvertiere.

Wo könnte ich denn da nachfragen, weiß da einer eine seite wo man sich mal erkundigen kann , oder ein forum?
Vielleicht kennt sich auch hier noch jemand mit Cs1.6 aus :roteyes: wäre nicht schlecht^^
trotzdem danke schonmal für die hilfe :)

Lossy eX 7. Sep 2007 15:06

Re: *.bmp-Dateien -> *.tga-Dateien
 
Sind die Bilder wirklich um 180° gedreht oder nur horizontal gespiegelt (Kopf stehen)? Mir sind bisher nur Bilder über den Weg gelaufen die Kopf standen.

In einem BMPs sind normal die Zeilen als Bottom Up gespeichert. Also mit der letzten Zeile zu erst in der Datei. Aber die Zeilen sind von Linkes nach Rechts gespeichert.

In einem TGA gibt es dafür aber Flag. Und zwar der ImageDescriptor (das Byte nach der PixelFarbtiefe). Wenn im Descriptor das Bit 5 ($20) gesetzt ist, dann beginnen die Bilddaten mit der ersten Zeile anderenfalls beginnen sie mit der letzten Zeile. Das Bit 4 ($10) gibt an ob die Zeilen noch mal gespiegelt sind. Nicht gesetzt ist von Links nach rechts. Ist es gesetzt geht es von Rechts nach Links. Aber das ist mir bisher noch nicht über den Weg gelaufen. Weil es eigentlich auch nur das Laden erschwert. Aber vielleicht haben sie bei cs genau das damit bezweckt.

Für das Format solltest du mal wotsit.org nachschauen. Unter Tga gibt es zwei Beschreibungen. Wobei beide aber unterschiedliche Felder des Descriptors als unbenutzt bezeichnen.

tweetymr 7. Sep 2007 18:19

Re: *.bmp-Dateien -> *.tga-Dateien
 
daran hab ich noch garnicht gedacht :o
genau das ist es :stupid:
nur... ich kenne mich nicht sehr gut mit dem dem ganzen offset und co von bildern aus :oops:
wie kann ich das ansteuern? Oder gibts da schon einen fertigen code für mein Problem, den ich mir mal angucken könnte? :cyclops: :gruebel:
schonmal viiiieeeellleeenn Dank!!! :thumb: :lol: :-D

Lossy eX 8. Sep 2007 08:27

Re: *.bmp-Dateien -> *.tga-Dateien
 
Also ich könnte dir maximal etwas Code zum einlesen anbieten aber der ist wohl eher etwas verwirrender als er tatsächlich helfen würde. Denn das was ich an Speicherncode habe dürfte sich von deinem jetzigen nicht viel unterscheiden.

Aber generell kannst du auch sagen, dass dein TGA aus dem Header und den Bilddaten besteht. Alles andere kannst du außen vor lassen. Wenn du ein TBitmap hast ist es noch einfacher. Denn je nach Richtung gehst du entweder von 0 bis Height -1 oder Height -1 bis 0 durch das Bild und speicherst Zeile für Zeile in der Datei. Wenn du Zeilen noch gespiegelt werden müssen, dann würde ich es so machen, dass du dafür eine extra kleine Methode hast. Die würde dann nur eine einzelne Zeile speichern und je nach richtung. Dann Pixelweise von Hinten oder von Vorn. Hoffe das hat dir eine Idee zum generellen Aufbau geben können.

tweetymr 8. Sep 2007 13:58

Re: *.bmp-Dateien -> *.tga-Dateien
 
Zum Aufbau hat es mir schon geholfen :)
aber ich weiß nicht wie ich die pixel ansteuern soll :( und wo muss ich height -1 bis 0 bzw. height 0 bis -1???
ich weiß einfach nicht wie ich anfangen soll. ich kann mir das einfach nicht in codezeilen vorstellen.
wenn ich erstmal ein kleines beispiel gesehen hab, läuft denke ich mal alles von alleine :P
kannst du mir vielleicht irgendetwas kleines anbieten? Brauche ja nur nen Anfang, damit ich weiß, wie das ungefähr aussieht.
geht auch mit TBitmap wenn das einfacher geht, wäre dann aber nett wenn du mir sagen würdest was ich bei targa-dateien anders machen muss (ansatzweise)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz