TGA Datei erstellen
-
Ich möchte eine TGA Datei generieren aber Adobe PS6.0 will es nicht
öffnen. Was mache ich denn falsch?#include <stdio.h> #include <string.h> struct TGAHeader { BYTE IDLength; BYTE ColorMapType; BYTE DataTypeCode; WORD wColorMapOrigin; WORD wColorMapLength; BYTE ColorMapDepth; WORD wOriginX; WORD wOriginY; WORD wWidth; WORD wHeight; BYTE BitDepth; BYTE ImageDescriptor; }; int main(){ FILE *fp; TGAHeader h; long data = 0x00ff00ff; memset(&h,0,sizeof(h)); h.BitDepth = 32; h.ImageDescriptor = 32; h.wHeight = 1; h.wWidth = 1; fp = fopen("c:\\ttggaa.tga","wb"); fwrite(&h,sizeof(h),1,fp); fwrite(&data,sizeof(long),1,fp); fclose(fp); return 0; }
-
schau dir mal
sizeof(h)
an, ist höchstwarscheinlich nicht 18 wie es sein sollte.
rapso->greets();
-
Doch es sind genau 18 Byte, meinste wegen der struct-element-ausrichtung oder?
Die habe ich schon auf 1 Byte gesetzt.
-
Das Bild ist doch mit Alpha? Ich bin zwar kein Grafiker, darum keine Garantie, aber mir wurde mal erzählt, das Photoshop irgendein Bug mit Alpha-tgas hat. Ansonsten kann es natürlich auch gut sein, das du im Header etwas falsch setzt. Speicher doch mal ein entsprechendes tga und schau es im Hexeditor an!