12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #include <u.h>
- #include <libc.h>
- #include <draw.h>
- #include <memdraw.h>
- #include <ctype.h>
- #include <bio.h>
- #include <flate.h>
- #include "imagefile.h"
- void
- usage(void)
- {
- fprint(2, "usage: topng [-c 'comment'] [-g 'gamma'] [file]\n");
- exits("usage");
- }
- void
- main(int argc, char *argv[])
- {
- Biobuf bout;
- Memimage *i;
- int fd;
- char *err, *filename;
- ImageInfo II;
- ARGBEGIN{
- case 'c':
- II.comment = ARGF();
- if(II.comment == nil)
- usage();
- II.fields_set |= II_COMMENT;
- break;
- case 'g':
- II.gamma = atof(ARGF());
- if(II.gamma == 0.)
- usage();
- II.fields_set |= II_GAMMA;
- break;
- case 't':
- break;
- default:
- usage();
- }ARGEND
- if(Binit(&bout, 1, OWRITE) < 0)
- sysfatal("Binit failed: %r");
- memimageinit();
- if(argc == 0){
- fd = 0;
- filename = "<stdin>";
- }else{
- fd = open(argv[0], OREAD);
- if(fd < 0)
- sysfatal("can't open %s: %r", argv[0]);
- filename = argv[0];
- }
- i = readmemimage(fd);
- if(i == nil)
- sysfatal("can't readimage %s: %r", filename);
- close(fd);
- err = memwritepng(&bout, i, &II);
- freememimage(i);
- if(err != nil)
- fprint(2, "topng: %s\n", err);
- exits(err);
- }
|