Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
typedef struct Rawimage Rawimage;
2
 
3
struct Rawimage
4
{
5
	Rectangle	r;
6
	uchar	*cmap;
7
	int		cmaplen;
8
	int		nchans;
9
	uchar	*chans[4];
10
	int		chandesc;
11
	int		chanlen;
12
 
13
	int		fields;    	/* defined by format */
14
	int		gifflags;	/* gif only; graphics control extension flag word */
15
	int		gifdelay;	/* gif only; graphics control extension delay in cs */
16
	int		giftrindex;	/* gif only; graphics control extension transparency index */
17
	int		gifloopcount;	/* number of times to loop in animation; 0 means forever */
18
};
19
 
20
enum
21
{
22
	/* Channel descriptors */
23
	CRGB	= 0,	/* three channels, no map */
24
	CYCbCr	= 1,	/* three channels, no map, level-shifted 601 color space */
25
	CY	= 2,	/* one channel, luminance */
26
	CRGB1	= 3,	/* one channel, map present */
27
	CRGBV	= 4,	/* one channel, map is RGBV, understood */
28
	CRGB24	= 5,	/* one channel in correct data order for loadimage(RGB24) */
29
	CRGBA32	= 6,	/* one channel in correct data order for loadimage(RGBA32) */
30
	CYA16	= 7,	/* one channel in correct data order for loadimage(Grey8+Alpha8) */
31
	CRGBVA16= 8,	/* one channel in correct data order for loadimage(CMAP8+Alpha8) */
32
 
33
	/* GIF flags */
34
	TRANSP	= 1,
35
	INPUT	= 2,
36
	DISPMASK = 7<<2
37
};
38
 
39
 
40
enum{	/* PNG flags */
41
	II_GAMMA =	1 << 0,
42
	II_COMMENT =	1 << 1,
43
};
44
 
45
typedef struct ImageInfo {
46
	ulong	fields_set;
47
	double	gamma;
48
	char	*comment;
49
} ImageInfo;
50
 
51
 
52
Rawimage**	readjpg(int, int);
53
Rawimage**	Breadjpg(Biobuf *b, int);
54
Rawimage**	readpng(int, int);
55
Rawimage**	Breadpng(Biobuf *b, int);
56
Rawimage**	readgif(int, int);
57
Rawimage**	readpixmap(int, int);
58
Rawimage*	torgbv(Rawimage*, int);
59
Rawimage*	totruecolor(Rawimage*, int);
60
int		writerawimage(int, Rawimage*);
61
void*		_remaperror(char*, ...);
62
 
63
typedef struct Memimage Memimage;	/* avoid necessity to include memdraw.h */
64
 
65
char*		startgif(Biobuf*, Image*, int);
66
char*		writegif(Biobuf*, Image*, char*, int, int);
67
void		endgif(Biobuf*);
68
char*		memstartgif(Biobuf*, Memimage*, int);
69
char*		memwritegif(Biobuf*, Memimage*, char*, int, int);
70
void		memendgif(Biobuf*);
71
Image*		onechan(Image*);
72
Memimage*	memonechan(Memimage*);
73
 
74
char*		writeppm(Biobuf*, Image*, char*);
75
char*		memwriteppm(Biobuf*, Memimage*, char*);
76
Image*		multichan(Image*);
77
Memimage*	memmultichan(Memimage*);
78
 
79
char*		memwritepng(Biobuf*, Memimage*, ImageInfo*);