1893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project/*--------------------------------------------------------------------------- 2893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 3893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project rpng - simple PNG display program readpng.h 4893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 5893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project --------------------------------------------------------------------------- 6893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 7893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project Copyright (c) 1998-2007 Greg Roelofs. All rights reserved. 8893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 9893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project This software is provided "as is," without warranty of any kind, 10893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project express or implied. In no event shall the author or contributors 11893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project be held liable for any damages arising in any way from the use of 12893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project this software. 13893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 14893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project The contents of this file are DUAL-LICENSED. You may modify and/or 15893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project redistribute this software according to the terms of one of the 16893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project following two licenses (at your option): 17893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 18893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 19893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project LICENSE 1 ("BSD-like with advertising clause"): 20893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 21893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project Permission is granted to anyone to use this software for any purpose, 22893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project including commercial applications, and to alter it and redistribute 23893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project it freely, subject to the following restrictions: 24893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 25893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 1. Redistributions of source code must retain the above copyright 26893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project notice, disclaimer, and this list of conditions. 27893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 2. Redistributions in binary form must reproduce the above copyright 28893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project notice, disclaimer, and this list of conditions in the documenta- 29893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project tion and/or other materials provided with the distribution. 30893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 3. All advertising materials mentioning features or use of this 31893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project software must display the following acknowledgment: 32893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 33893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project This product includes software developed by Greg Roelofs 34893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project and contributors for the book, "PNG: The Definitive Guide," 35893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project published by O'Reilly and Associates. 36893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 37893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 38893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project LICENSE 2 (GNU GPL v2 or later): 39893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 40893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project This program is free software; you can redistribute it and/or modify 41893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project it under the terms of the GNU General Public License as published by 42893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project the Free Software Foundation; either version 2 of the License, or 43893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project (at your option) any later version. 44893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 45893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project This program is distributed in the hope that it will be useful, 46893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project but WITHOUT ANY WARRANTY; without even the implied warranty of 47893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 48893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project GNU General Public License for more details. 49893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 50893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project You should have received a copy of the GNU General Public License 51893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project along with this program; if not, write to the Free Software Foundation, 52893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 53893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 54893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project ---------------------------------------------------------------------------*/ 55893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 56893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project#ifndef TRUE 57893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# define TRUE 1 58893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# define FALSE 0 59893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project#endif 60893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 61893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project#ifndef MAX 62893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# define MAX(a,b) ((a) > (b)? (a) : (b)) 63893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# define MIN(a,b) ((a) < (b)? (a) : (b)) 64893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project#endif 65893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 66893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project#ifdef DEBUG 67893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# define Trace(x) {fprintf x ; fflush(stderr); fflush(stdout);} 68893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project#else 69893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# define Trace(x) ; 70893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project#endif 71893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 72893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projecttypedef unsigned char uch; 73893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projecttypedef unsigned short ush; 74893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projecttypedef unsigned long ulg; 75893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 76893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 77893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project/* prototypes for public functions in readpng.c */ 78893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 79893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectvoid readpng_version_info(void); 80893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 81893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectint readpng_init(FILE *infile, ulg *pWidth, ulg *pHeight); 82893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 83893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectint readpng_get_bgcolor(uch *bg_red, uch *bg_green, uch *bg_blue); 84893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 85893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectuch *readpng_get_image(double display_exponent, int *pChannels, 86893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project ulg *pRowbytes); 87893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project 88893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectvoid readpng_cleanup(int free_image_data); 89