8 static Memimage *memtochan(Memimage *, ulong);
13 fprint(2, "usage: %s [-c 'comment'] "
14 "[-3bgGhklLptvyY] [file]\n", argv0);
19 main(int argc, char *argv[])
23 int fd, chanflag, comp, opt;
32 case '3': /* force RGB */
47 case 'G': /* t4 two-dimensional */
51 case 'h': /* huffman */
62 case 'L': /* lzw, horizontal differencing */
66 case 'p': /* packbits */
94 if((fd = open(file, OREAD)) < 0)
95 sysfatal("open %s: %r", file);
97 if(Binit(&bout, 1, OWRITE) < 0)
98 sysfatal("Binit: %r");
100 if((i = readmemimage(fd)) == nil)
101 sysfatal("readmemimage %s: %r", file);
103 if(comp >= 2 && comp <= 4) {
106 } else if(chan == GREY2) {
107 if((ni = memtochan(i, chan)) == nil)
108 sysfatal("memtochan: %r");
133 if((ni = memtochan(i, chan)) == nil)
134 sysfatal("memtochan: %r");
140 if((err = memwritetif(&bout, i, c, comp, opt)) != nil)
141 fprint(2, "%s: %s\n", argv0, err);
147 memtochan(Memimage *i, ulong chan)
153 if((ni = allocmemimage(i->r, chan)) == nil)
155 memimagedraw(ni, ni->r, i, i->r.min, nil, i->r.min, S);