#include #include #include #include "pict.h" #ifdef THINK_C #include #endif #define IW pictOut->image_W #define IH pictOut->image_H #define IN pictOut->n_comp main(int argc,char *argv[]) { char *fname; C_MAP cm; char *ct; unsigned char r, g, b; Pict pictOut; int ti,tj,i,j,n,mode; U_char *po; #ifdef THINK_C argc = ccommand(&argv); #endif if (argc<8) { fprintf(stderr,"%s: pict de color uniforme\n",argv[0]); fprintf(stderr,"Uso: %s pict x y mode r g b\n",argv[0]); fprintf(stderr,"mode: 0 1 3 4\n"); exit(1); } ct=(char*)cm; fname = argv[1]; ti = atoi(argv[2]); tj = atoi(argv[3]); mode = atoi(argv[4]); r = atoi(argv[5]); g = atoi(argv[6]); b = atoi(argv[7]); switch(mode) { case M_MONO: break; case M_RGB8: case M_RGB24: ct[0]=r; ct[1]=g; ct[2]=b; break; case M_RGBA32: ct[0]=r; ct[1]=r; ct[2]=g; ct[3]=b; break; default: fprintf(stderr,"Modo %d desconocido\n",mode); exit(-2); break; } if( (ti<=0) || (tj<=0) ) { fprintf(stderr,"Error en los limites: %dx%d\n",ti,tj ); fprintf(stderr,"Header9A %d, Header98 %d\n", sizeof(Header9A),sizeof(Header98) ); exit(-1); } pictOut = pict_open((char *)fname,P_WRITE, tj,ti,mode,cm); if ((pictOut->pixels = (U_char*)malloc(pictOut->image_W*pictOut->n_comp))==NULL) exit(1); for(j=0;jpixels; for(n=0;npixels); } pict_close(pictOut); }