1 /**
2  *
3  * Image handling tools, (c) AJK 2001-2005
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
18  *
19  */
20 
21 #ifndef __IMAGE_H
22 #define __IMAGE_H
23 
24 typedef unsigned int Colour;	// RGB value
25 
26 // Image object
27 typedef struct {
28 	int W,			// width
29 	 L,			// Line length in Image (W+1)
30 	 H;			// height
31 	unsigned char *Image;	// image array, one byte per pixel
32 	int C;			// colours (can be non power of 2, max 256)
33 	Colour *Colour;		// colour map (must have entry for each colour)
34 } Image;
35 
36 // macros and functions
37 
38 #define ImagePixel(i,x,y)	((i)->Image[1+(i)->L*(y)+(x)])
39 
40 Image *ImageNew(int w, int h, int c);	// create a new blank image
41 void ImageFree(Image * i);	// free an image
42 void ImageWritePNG(Image * i, int fh, int back, int trans, const char *comment);
43 
44 #endif				/* __IMAGE_H */
45