Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Nov 01, 2024 00:08

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 18 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: TARGA-Dateiformat
BeitragVerfasst: Mi Nov 06, 2013 21:54 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey Leute,

ich bin grad dabei die TGA Routinen in der glBitmap umzubauen, und da sind ein paar Fragen entstanden, bei denen ich nicht weiter weiß.
Im Dateikopf gibt es ein Feld "Bild-Attribut-Byte" in dessen niederwertigstem Nibble die Breite des Alpha-Kanals (in bits) enthalten ist. In der Spec ist auch nichts vorgeschrieben wie dieser aussehen muss. Also könnte man den doch rein theoretisch auf jeden Wert zwischen 0 und 15 setzen. Ich hab das Ganze mal so implementiert und RGBA4 mit Bild-Attribut-Byte = 4 gespeichert. Doch leider kann keins meiner Bildbearbeitungsprogramme die Datei so lesen. Jetzt ist die Frage wer das falsch macht. Hab ich was übersehen, oder ist das bei den Programmen falsch umgesetzt worden?

MfG Bergmann.

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: TARGA-Dateiformat
BeitragVerfasst: Mi Nov 06, 2013 22:15 
Offline
DGL Member

Registriert: Do Dez 29, 2011 19:40
Beiträge: 421
Wohnort: Deutschland, Bayern
Programmiersprache: C++, C, D, C# VB.Net
Also ich lese da auf Wikipedia "Anzahl der Attributbits pro Bildpunkt" bei dem "Bild-Attribut-Byte"-Eintrag. Ich weiß zwar nicht was mit Attributbits gemeint ist, aber ich denke nicht, der Alphakannal. Du könntest mal überprüfen was in dem Feld bei bei validen normalen TGAs drin steht.

Ansonsten würde ich mal bei nicht ganz trivialen Formaten andere Quellen als Wikipedia benutzen, weil die Angaben wahrscheinlich nicht Komplett sind.
Bei Google habe ich gleich relativ umfangreiche mir aber gut verständlich scheinende andere Quellen gefunden:
http://www.dca.fee.unicamp.br/~martino/disciplinas/ea978/tgaffs.pdf
http://www.paulbourke.net/dataformats/tga/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: TARGA-Dateiformat
BeitragVerfasst: Mi Nov 06, 2013 22:51 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,

die beiden Links hab ich auch schon gefunden. Die Webseite hab ich überflogen und die PDF hab ich genau gelesen (weil das ja offensichtlich die offiziellen Specs sind). Die Attribut-Bits können auch was anderes sein, aber das trifft nicht für die Datein zu. Bei den TGA-Dateiformaten ist das immer der Alphakanal.

Ich hab auch nochma paar andere Formate probiert und mit GIMP geladen:
Code:
  1. Luminance8;         TGA8  mit 0 Alpha-Bits: geht
  2. Alpha8;             TGA8  mit 8 Alpha-bits: geht
  3. Luminance8Alpha8;   TGA16 mit 8 Alpha-Bits: geht
  4. RGB5;               TGA16 mit 0 Alpha-Bits: geht
  5. RGB5A1;             TGA16 mit 1 Alpha-Bit:  geht
  6. RGBA4;              TGA16 mit 4 Alpha-Bits: geht nicht
  7. RGB10A2:            TGA32 mit 2 Alpha-Bits: geht nicht


MfG Bergmann.

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: TARGA-Dateiformat
BeitragVerfasst: Mi Nov 06, 2013 23:10 
Offline
DGL Member
Benutzeravatar

Registriert: So Sep 26, 2010 12:54
Beiträge: 238
Wohnort: wieder in Berlin
Programmiersprache: Englisch
war RGB10A2 nicht eins der neueren, hardwareseitig unterstützten Formate? ab DX10 em also GL3+?

Also unwahrscheinlich das Paint & Co das out of the box können.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: TARGA-Dateiformat
BeitragVerfasst: Mi Nov 06, 2013 23:28 
Offline
DGL Member

Registriert: Do Dez 29, 2011 19:40
Beiträge: 421
Wohnort: Deutschland, Bayern
Programmiersprache: C++, C, D, C# VB.Net
Also das "Bild-Attribut-Byte" scheint zu stimmen.
Ich habe gerade eine R8G8B8A8 TGA-Bilddatei aus GIMP mit einen Hexeditor untersucht und es steht da definitiv 8 in dem Feld was auch mit der Anzahl der Alphabits übereinstimmt.
Außerdem habe ich jetzt auch selber einen Blick in die Spezifikation geworfen und da steht das eigentlich auch:
Zitat:
Field 5.6 (1 byte) - Image Descriptor:
Bits 3-0: These bits specify the number of attribute bits per pixel. In the case of the TrueVista, these bits indicate the number of bits per pixel which are designated as Alpha Channel bits. For the ICB and TARGA products, these bits indicate the
number of overlay bits available per pixel. See field 24 (Attributes Type) for more information.

Bits 5 & 4: These bits are used to indicate the order in which pixel data is transferred from the file to the screen. Bit 4 is for left-to-right ordering and bit 5 is for top-to-bottom ordering as shown below.

Bits 7 & 6: Must be zero to insure future compatibility.


Ich habe jetzt die Spezifikation nur überflogen, aber wie du jetzt in TGA angeben willst, dass 10 Bits Rot, Grün, Blau und 2 Alpha in der Datei abspeichert sind, habe ich nicht verstanden. Es gibt lediglich 1 Feld in dem man die Größe eines ganzen Pixels inklusiv Alpha festlegen kann. ("Field 5.5 (1 byte) - Pixel Depth")

Zitat:
war RGB10A2 nicht eins der neueren, hardwareseitig unterstützten Formate?

Hier geht es, so wie ich das verstanden habe, nicht um Hardwareunterstützung der Bildformate sondern dem Abspeichern im TGA-Format. Und wenn in der Spezifikation steht, dass das Format das unterstützt (Da bin ich mir im Moment aber gar nicht so sicher), dann ist das unabhänig von irgendwelcher Hardware so definiert. Ob Dx oder OpenGL jetzt genau diese Anzahl Bits in Texturen ablegen können, hat damit eher weniger zu tun. Abgesehen davon das Paint kein TGA unterstützt und das die meisten Grafikprogramme die GPU für die Bildbearbeitung gar nicht nutzen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: TARGA-Dateiformat
BeitragVerfasst: Do Nov 07, 2013 10:39 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,

OpenglerF hat geschrieben:
Ich habe jetzt die Spezifikation nur überflogen, aber wie du jetzt in TGA angeben willst, dass 10 Bits Rot, Grün, Blau und 2 Alpha in der Datei abspeichert sind, habe ich nicht verstanden. Es gibt lediglich 1 Feld in dem man die Größe eines ganzen Pixels inklusiv Alpha festlegen kann. ("Field 5.5 (1 byte) - Pixel Depth")
ich seh das so: RGB bits = ("Field 5.5 (1 byte) Pixel Depth" - "Field 5.6 (bit 3-0) AlphaBits") / 3. Das wäre bei TGA32 mit 2bit Alpha: 32 - 2 = 30 / 3 = 10 für RGB und halt 2 für Alpha. Wenn die RGB bits nicht durch 3 teilbar sind, ist es ein ungültiges Format.

MfG Bergmann.

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: TARGA-Dateiformat
BeitragVerfasst: Do Nov 07, 2013 14:19 
Offline
DGL Member

Registriert: Do Dez 29, 2011 19:40
Beiträge: 421
Wohnort: Deutschland, Bayern
Programmiersprache: C++, C, D, C# VB.Net
Denkst du dir das nur, weil es naheliegend wäre, oder steht das in der Spezifikation?
Ich konnte nichts finden.
Es könnte auch sein, dass die Bildbearbeitungsprogramme nicht voll zur TGA-Spezifikation kompatibel sind und mit so für normale Bilddaten unünblichen Formaten nicht klar kommen. Das wäre aber eher unwahrscheinlich, weil du ja scheinbar mehrere Porgramme getestet hast.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: TARGA-Dateiformat
BeitragVerfasst: Do Nov 07, 2013 17:11 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
OpenglerF hat geschrieben:
Denkst du dir das nur, weil es naheliegend wäre, oder steht das in der Spezifikation?
Es steht eben nirgends, deshalb muss ich mir was einfallen lassen bzw. deshalb hab ich den Thread aufgemacht^^ Ich hab schon gefühlte 1000 Quellen durchwühlt :/

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: TARGA-Dateiformat
BeitragVerfasst: Do Nov 07, 2013 17:48 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Kennst du denn RGBA4-Dateien die von GIMP geöffnet werden können? Probier mal das Kommandozeilentool convert (gehört zu ImageMagick). Eventuell ist das aufschlussreicher, entweder, weil es eine genauere Fehlermeldung ausgibt oder weil es damit klar kommt. Ggfs. kann GIMP einfach kein RGBA4.

Convert einfach so testen:
Code:
  1. convert /path/to/foo.tga test.png

Wenn test.png dann eine brauchbare png-Datei ist, dann hats geklappt ;)

grüße

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: TARGA-Dateiformat
BeitragVerfasst: Do Nov 07, 2013 19:07 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
Zitat:
RGBA4;              TGA16 mit 4 Alpha-Bits: geht nicht
RGB10A2:            TGA32 mit 2 Alpha-Bits: geht nicht


Tga für 16-bit kann nur (0,1,2) 16RGB555 oder (3) 16ARGB1555
Bei 32-bit hast du wahl zwischen (1,2) ist 32RGB, (0,3) ist 32ARGB und (4) wäre 32PARGB

hoffe das hilft dir weiter :)

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: TARGA-Dateiformat
BeitragVerfasst: Do Nov 07, 2013 20:06 
Offline
DGL Member
Benutzeravatar

Registriert: So Sep 26, 2010 12:54
Beiträge: 238
Wohnort: wieder in Berlin
Programmiersprache: Englisch
"RGB10A2" ist ja auch ein OpenGL Type, oder nicht?

Also hat das sehr wohl was damit zu tun.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: TARGA-Dateiformat
BeitragVerfasst: Do Nov 07, 2013 20:48 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
@Lord Horazont:
ImageMagick kann weder RGBA4 noch RGB5A1 (die 32bit Typen hab ich gar nicht erst probiert)

@yunharla:
was meinst du mit den Zahlen in den Klammern?

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: TARGA-Dateiformat
BeitragVerfasst: Do Nov 07, 2013 20:57 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
oh ja sry, das Attribute byte ^^ [edit] (bits 3-0)

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: TARGA-Dateiformat
BeitragVerfasst: Do Nov 07, 2013 21:44 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Also entweder versteh ich dich immer noch nich, oder du hast was falsch verstanden. Die 4bits sind eine normale Zahl. Kann also Werte zwischen 0 und 15 einnehmen und das gibt an wieviel Bits der AlphaKanal hat.

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: TARGA-Dateiformat
BeitragVerfasst: Do Nov 07, 2013 23:32 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
kuckst du hier:
http://www.codeproject.com/Articles/317 ... age-Reader

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 18 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.013s | 15 Queries | GZIP : On ]