#include #include extern const char *__progname; static int xsize; static int ysize; static void usage(void) { fprintf(stderr,"Usage: %s xsize ysize\n",__progname); exit(1); } static void unxeof(void) { fprintf(stderr,"%s: unexpected EOF\n",__progname); exit(1); } static void rgba4444(unsigned short int p) { putchar(0x11*((p>>8)&15)); putchar(0x11*((p>>4)&15)); putchar(0x11*( p &15)); } int main(int, char **); int main(int ac, char **av) { int x; int y; int c1; int c2; if (ac != 3) usage(); xsize = atoi(av[1]); ysize = atoi(av[2]); if ((xsize < 1) || (ysize < 1)) usage(); printf("P6\n%d %d\n255\n",xsize,ysize); for (y=ysize;y>0;y--) { for (x=xsize;x>0;x--) { c1 = getchar(); if (c1 == EOF) unxeof(); c2 = getchar(); if (c2 == EOF) unxeof(); rgba4444((c2*256)+c1); } } return(0); }