forked from ghewgill/xearth
-
Notifications
You must be signed in to change notification settings - Fork 0
/
giflib.h
133 lines (114 loc) · 4.49 KB
/
giflib.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/*
* giflib/giflib.h
* kirk johnson
* may 1990
*
* Copyright (C) 1989, 1990, 1993-1995, 1999 Kirk Lauritz Johnson
*
* Parts of the source code (as marked) are:
* Copyright (C) 1989, 1990, 1991 by Jim Frost
* Copyright (C) 1992 by Jamie Zawinski <[email protected]>
*
* Permission to use, copy, modify and freely distribute xearth for
* non-commercial and not-for-profit purposes is hereby granted
* without fee, provided that both the above copyright notice and this
* permission notice appear in all copies and in supporting
* documentation.
*
* Unisys Corporation holds worldwide patent rights on the Lempel Zev
* Welch (LZW) compression technique employed in the CompuServe GIF
* image file format as well as in other formats. Unisys has made it
* clear, however, that it does not require licensing or fees to be
* paid for freely distributed, non-commercial applications (such as
* xearth) that employ LZW/GIF technology. Those wishing further
* information about licensing the LZW patent should contact Unisys
* directly at ([email protected]) or by writing to
*
* Unisys Corporation
* Welch Licensing Department
* M/S-C1SW19
* P.O. Box 500
* Blue Bell, PA 19424
*
* The author makes no representations about the suitability of this
* software for any purpose. It is provided "as is" without express or
* implied warranty.
*
* THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT
* OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef _GIFLIB_H_
#define _GIFLIB_H_
#include "kljcpyrt.h"
/*
* giflib return codes
*/
#define GIFLIB_SUCCESS 0 /* success */
#define GIFLIB_DONE 1 /* no more images */
#define GIFLIB_ERR_BAD_SD -1 /* bad screen descriptor */
#define GIFLIB_ERR_BAD_SEP -2 /* bad image separator */
#define GIFLIB_ERR_BAD_SIG -3 /* bad signature */
#define GIFLIB_ERR_EOD -4 /* unexpected end of raster data */
#define GIFLIB_ERR_EOF -5 /* unexpected end of input stream */
#define GIFLIB_ERR_OUT -6 /* i/o output error */
#define GIFLIB_ERR_FAO -7 /* file already open */
#define GIFLIB_ERR_IAO -8 /* image already open */
#define GIFLIB_ERR_ISO -9 /* image still open */
#define GIFLIB_ERR_NFO -10 /* no file open */
#define GIFLIB_ERR_NIO -11 /* no image open */
/*
* colormap indices
*/
#define GIFLIB_RED 0
#define GIFLIB_GRN 1
#define GIFLIB_BLU 2
/*
* typedef BYTE for convenience
*/
typedef unsigned char BYTE;
#ifdef USING_GIF_IN
/*
* procedures exported by gifin.c
*/
extern int gifin_open_file();
extern int gifin_open_image();
extern int gifin_get_pixel();
extern int gifin_get_row();
extern int gifin_close_image();
extern int gifin_close_file();
/*
* variables exported by gifin.c
*/
extern int gifin_rast_width; /* raster width */
extern int gifin_rast_height; /* raster height */
extern BYTE gifin_g_cmap_flag; /* global colormap flag */
extern int gifin_g_pixel_bits; /* bits per pixel, global colormap */
extern int gifin_g_ncolors; /* number of colors, global colormap */
extern BYTE gifin_g_cmap[3][256]; /* global colormap */
extern int gifin_bg_color; /* background color index */
extern int gifin_color_bits; /* bits of color resolution */
extern int gifin_img_left; /* image position on raster */
extern int gifin_img_top; /* image position on raster */
extern int gifin_img_width; /* image width */
extern int gifin_img_height; /* image height */
extern BYTE gifin_l_cmap_flag; /* local colormap flag */
extern int gifin_l_pixel_bits; /* bits per pixel, local colormap */
extern int gifin_l_ncolors; /* number of colors, local colormap */
extern BYTE gifin_l_cmap[3][256]; /* local colormap */
extern BYTE gifin_interlace_flag; /* interlace image format flag */
#endif /* USING_GIF_IN */
/*
* procedures exported by gifout.c
*/
extern int gifout_open_file _P((FILE *, int, int, int, BYTE [3][256], int));
extern int gifout_open_image _P((int, int, int, int));
extern void gifout_put_pixel _P((int));
extern void gifout_put_row _P((int *));
extern int gifout_close_image _P((void));
extern int gifout_close_file _P((void));
#endif