URI:
       ttopng.c - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       ttopng.c (1116B)
       ---
            1 #include <u.h>
            2 #include <libc.h>
            3 #include <draw.h>
            4 #include <memdraw.h>
            5 #include <ctype.h>
            6 #include <bio.h>
            7 #include <flate.h>
            8 #include "imagefile.h"
            9 
           10 void
           11 usage(void)
           12 {
           13         fprint(2, "usage: topng [-c 'comment'] [-g 'gamma'] [file]\n");
           14         exits("usage");
           15 }
           16 
           17 void
           18 main(int argc, char *argv[])
           19 {
           20         Biobuf bout;
           21         Memimage *i;
           22         int fd;
           23         char *err, *filename;
           24         ImageInfo II;
           25 
           26         ARGBEGIN{
           27         case 'c':
           28                 II.comment = ARGF();
           29                 if(II.comment == nil)
           30                         usage();
           31                 II.fields_set |= II_COMMENT;
           32                 break;
           33         case 'g':
           34                 II.gamma = atof(ARGF());
           35                 if(II.gamma == 0.)
           36                         usage();
           37                 II.fields_set |= II_GAMMA;
           38                 break;
           39         case 't':
           40                 break;
           41         default:
           42                 usage();
           43         }ARGEND
           44 
           45         if(Binit(&bout, 1, OWRITE) < 0)
           46                 sysfatal("Binit failed: %r");
           47         memimageinit();
           48 
           49         if(argc == 0){
           50                 fd = 0;
           51                 filename = "<stdin>";
           52         }else{
           53                 fd = open(argv[0], OREAD);
           54                 if(fd < 0)
           55                         sysfatal("can't open %s: %r", argv[0]);
           56                 filename = argv[0];
           57         }
           58 
           59         i = readmemimage(fd);
           60         if(i == nil)
           61                 sysfatal("can't readimage %s: %r", filename);
           62         close(fd);
           63 
           64         err = memwritepng(&bout, i, &II);
           65         freememimage(i);
           66 
           67         if(err != nil)
           68                 fprint(2, "topng: %s\n", err);
           69         exits(err);
           70 }