9 fprint(2, "usage: iconv [-u] [-c chanstr] [file]\n");
14 writeuncompressed(int fd, Memimage *m)
20 if(chantostr(chanstr, m->chan) == nil)
21 sysfatal("can't convert channel descriptor: %r");
22 fprint(fd, "%11s %11d %11d %11d %11d ",
23 chanstr, m->r.min.x, m->r.min.y, m->r.max.x, m->r.max.y);
25 bpl = bytesperline(m->r, m->depth);
28 sysfatal("malloc failed: %r");
29 for(y=m->r.min.y; y<m->r.max.y; y++){
30 j = unloadmemimage(m, Rect(m->r.min.x, y, m->r.max.x, y+1), buf, bpl);
32 sysfatal("image unload failed: %r");
33 if(write(fd, buf, bpl) != bpl)
34 sysfatal("write failed: %r");
40 main(int argc, char *argv[])
51 tostr = EARGF(usage());
71 fd = open(file, OREAD);
73 sysfatal("can't open %s: %r", file);
82 sysfatal("can't read %s: %r", file);
87 tochan = strtochan(tostr);
89 sysfatal("bad channel descriptor '%s'", tostr);
92 n = allocmemimage(m->r, tochan);
94 sysfatal("can't allocate new image: %r");
96 memimagedraw(n, n->r, m, m->r.min, nil, ZP, S);
98 writeuncompressed(1, n);