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;
    }
    

  • Mod

    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!


Anmelden zum Antworten