| typedef struct Rawimage Rawimage; |
| |
| struct Rawimage |
| { |
| Rectangle r; |
| uchar *cmap; |
| int cmaplen; |
| int nchans; |
| uchar *chans[4]; |
| int chandesc; |
| int chanlen; |
| |
| int fields; /* defined by format */ |
| int gifflags; /* gif only; graphics control extension flag word */ |
| int gifdelay; /* gif only; graphics control extension delay in cs */ |
| int giftrindex; /* gif only; graphics control extension transparency index */ |
| int gifloopcount; /* number of times to loop in animation; 0 means forever */ |
| }; |
| |
| enum |
| { |
| /* Channel descriptors */ |
| CRGB = 0, /* three channels, no map */ |
| CYCbCr = 1, /* three channels, no map, level-shifted 601 color space */ |
| CY = 2, /* one channel, luminance */ |
| CRGB1 = 3, /* one channel, map present */ |
| CRGBV = 4, /* one channel, map is RGBV, understood */ |
| CRGB24 = 5, /* one channel in correct data order for loadimage(RGB24) */ |
| CRGBA32 = 6, /* one channel in correct data order for loadimage(RGBA32) */ |
| CYA16 = 7, /* one channel in correct data order for loadimage(Grey8+Alpha8) */ |
| CRGBVA16= 8, /* one channel in correct data order for loadimage(CMAP8+Alpha8) */ |
| |
| /* GIF flags */ |
| TRANSP = 1, |
| INPUT = 2, |
| DISPMASK = 7<<2 |
| }; |
| |
| |
| enum{ /* PNG flags */ |
| II_GAMMA = 1 << 0, |
| II_COMMENT = 1 << 1 |
| }; |
| |
| typedef struct ImageInfo { |
| ulong fields_set; |
| double gamma; |
| char *comment; |
| } ImageInfo; |
| |
| |
| Rawimage** readjpg(int, int); |
| Rawimage** Breadjpg(Biobuf *b, int); |
| Rawimage** readpng(int, int); |
| Rawimage** Breadpng(Biobuf *b, int); |
| Rawimage** readgif(int, int); |
| Rawimage** readpixmap(int, int); |
| Rawimage* torgbv(Rawimage*, int); |
| Rawimage* totruecolor(Rawimage*, int); |
| int writerawimage(int, Rawimage*); |
| void* _remaperror(char*, ...); |
| |
| #ifndef _MEMDRAW_H_ |
| typedef struct Memimage Memimage; /* avoid necessity to include memdraw.h */ |
| #endif |
| |
| char* startgif(Biobuf*, Image*, int); |
| char* writegif(Biobuf*, Image*, char*, int, int); |
| void endgif(Biobuf*); |
| char* memstartgif(Biobuf*, Memimage*, int); |
| char* memwritegif(Biobuf*, Memimage*, char*, int, int); |
| void memendgif(Biobuf*); |
| Image* onechan(Image*); |
| Memimage* memonechan(Memimage*); |
| |
| char* writeppm(Biobuf*, Image*, char*); |
| char* memwriteppm(Biobuf*, Memimage*, char*); |
| Image* multichan(Image*); |
| Memimage* memmultichan(Memimage*); |
| |
| char* memwritepng(Biobuf*, Memimage*, ImageInfo*); |
| extern int drawlog2[]; |