Changeset View
Changeset View
Standalone View
Standalone View
contrib/pnglite/pnglite.h
- This file was added.
Property | Old Value | New Value |
---|---|---|
svn:eol-style | null | native \ No newline at end of property |
svn:keywords | null | FreeBSD=%H \ No newline at end of property |
svn:mime-type | null | text/plain \ No newline at end of property |
/* | |||||
* pnglite.h - Interface for pnglite library | |||||
* Copyright (c) 2007 Daniel Karling | |||||
* | |||||
* This software is provided 'as-is', without any express or implied | |||||
* warranty. In no event will the authors be held liable for any damages | |||||
* arising from the use of this software. | |||||
* | |||||
* Permission is granted to anyone to use this software for any purpose, | |||||
* including commercial applications, and to alter it and redistribute it | |||||
* freely, subject to the following restrictions: | |||||
* | |||||
* 1. The origin of this software must not be misrepresented; you must not | |||||
* claim that you wrote the original software. If you use this software | |||||
* in a product, an acknowledgment in the product documentation would be | |||||
* appreciated but is not required. | |||||
* | |||||
* 2. Altered source versions must be plainly marked as such, and must not | |||||
* be misrepresented as being the original software. | |||||
* | |||||
* 3. This notice may not be removed or altered from any source | |||||
* distribution. | |||||
* | |||||
* Daniel Karling | |||||
* daniel.karling@gmail.com | |||||
*/ | |||||
#ifndef _PNGLITE_H_ | |||||
#define _PNGLITE_H_ | |||||
#include <string.h> | |||||
#ifdef __cplusplus | |||||
extern "C" { | |||||
#endif | |||||
/* | |||||
* Enumerations for pnglite. | |||||
* Negative numbers are error codes and 0 and up are okay responses. | |||||
*/ | |||||
enum { | |||||
PNG_DONE = 1, | |||||
PNG_NO_ERROR = 0, | |||||
PNG_FILE_ERROR = -1, | |||||
PNG_HEADER_ERROR = -2, | |||||
PNG_IO_ERROR = -3, | |||||
PNG_EOF_ERROR = -4, | |||||
PNG_CRC_ERROR = -5, | |||||
PNG_MEMORY_ERROR = -6, | |||||
PNG_ZLIB_ERROR = -7, | |||||
PNG_UNKNOWN_FILTER = -8, | |||||
PNG_NOT_SUPPORTED = -9, | |||||
PNG_WRONG_ARGUMENTS = -10 | |||||
}; | |||||
/* | |||||
* The five different kinds of color storage in PNG files. | |||||
*/ | |||||
enum { | |||||
PNG_GREYSCALE = 0, | |||||
PNG_TRUECOLOR = 2, | |||||
PNG_INDEXED = 3, | |||||
PNG_GREYSCALE_ALPHA = 4, | |||||
PNG_TRUECOLOR_ALPHA = 6 | |||||
}; | |||||
typedef struct { | |||||
void *zs; /* pointer to z_stream */ | |||||
int fd; | |||||
unsigned char *image; | |||||
unsigned char *png_data; | |||||
unsigned png_datalen; | |||||
unsigned width; | |||||
unsigned height; | |||||
unsigned char depth; | |||||
unsigned char color_type; | |||||
unsigned char compression_method; | |||||
unsigned char filter_method; | |||||
unsigned char interlace_method; | |||||
unsigned char bpp; | |||||
unsigned char *readbuf; | |||||
unsigned readbuflen; | |||||
} png_t; | |||||
/* | |||||
* Function: png_open | |||||
* | |||||
* This function is used to open a png file with the internal file | |||||
* IO system. | |||||
* | |||||
* Parameters: | |||||
* png - Empty png_t struct. | |||||
* filename - Filename of the file to be opened. | |||||
* | |||||
* Returns: | |||||
* PNG_NO_ERROR on success, otherwise an error code. | |||||
*/ | |||||
int png_open(png_t *png, const char *filename); | |||||
/* | |||||
* Function: png_print_info | |||||
* | |||||
* This function prints some info about the opened png file to stdout. | |||||
* | |||||
* Parameters: | |||||
* png - png struct to get info from. | |||||
*/ | |||||
void png_print_info(png_t *png); | |||||
/* | |||||
* Function: png_error_string | |||||
* | |||||
* This function translates an error code to a human readable string. | |||||
* | |||||
* Parameters: | |||||
* error - Error code. | |||||
* | |||||
* Returns: | |||||
* Pointer to string. | |||||
*/ | |||||
char *png_error_string(int error); | |||||
/* | |||||
* Function: png_get_data | |||||
* | |||||
* This function decodes the opened png file and stores the result in data. | |||||
* data should be big enough to hold the decoded png. | |||||
* Required size will be: | |||||
* | |||||
* > width*height*(bytes per pixel) | |||||
* | |||||
* Parameters: | |||||
* data - Where to store result. | |||||
* | |||||
* Returns: | |||||
* PNG_NO_ERROR on success, otherwise an error code. | |||||
*/ | |||||
int png_get_data(png_t *png, uint8_t *data); | |||||
/* | |||||
* Function: png_close | |||||
* | |||||
* Closes an open png file pointer. | |||||
* | |||||
* Parameters: | |||||
* png - png to close. | |||||
* | |||||
* Returns: | |||||
* PNG_NO_ERROR | |||||
*/ | |||||
int png_close(png_t *png); | |||||
#ifdef __cplusplus | |||||
} | |||||
#endif | |||||
#endif /* _PNGLITE_H_ */ |