
#include <stdio.h>

int writetga(char *name,int xs,int ys,int *data)
{
    int y,x,c;
    FILE *fp;
    
    fp=fopen(name,"wb");

    /* TGA header */
    fputc(0,fp);
    fputc(0,fp);
    fputc(2,fp); /* RGB */

    fputc(0,fp); /* Colormap specification (never mind) */
    fputc(0,fp);
    fputc(0,fp);
    fputc(0,fp);
    fputc(0,fp);

    fputc(0,fp); /* Origin */
    fputc(0,fp);
    fputc(0,fp);
    fputc(0,fp);

    fputc(xs&0xff,fp); /* Size */
    fputc(xs>>8,fp);
    fputc(ys&0xff,fp);
    fputc(ys>>8,fp);

    fputc(24,fp);
    fputc(0,fp);

    for(y=ys-1;y>=0;y--)
    {
        for(x=0;x<xs;x++)
        {
            c=data[x+y*xs];
            fputc(c&0xff,fp);
            fputc((c>>8)&0xff,fp);
            fputc((c>>16)&0xff,fp);
        }
    }

    fclose(fp);
}
