Name Description Size
1737038.patch 961
apng.patch 52471
arm.patch 979
CHANGES 305334
libpng-manual.txt 228496
mips 1862
moz.yaml 1345
png.c Generate a compiler error if there is an old png.h in the search path. 157413
png.h 146554
pngconf.h else includes may cause problems 22806
pngdebug.h Define PNG_DEBUG at compile time for debugging information. Higher numbers for PNG_DEBUG mean more debugging information. This has only been added since version 0.95 so it is not implemented throughout libpng yet, but more support will be added as needed. png_debug[1-2]?(level, message ,arg{0-2}) Expands to a statement (either a simple expression or a compound do..while(0) statement) that outputs a message with parameter substitution if PNG_DEBUG is defined to 2 or more. If PNG_DEBUG is undefined, 0 or 1 every png_debug expands to a simple expression (actually ((void)0)). level: level of detail of message, starting at 0. A level 'n' message is preceded by 'n' 3-space indentations (not implemented on Microsoft compilers unless PNG_DEBUG_FILE is also defined, to allow debug DLL compilation with no standard IO). message: a printf(3) style text string. A trailing '\n' is added to the message. arg: 0 to 2 arguments for printf(3) style substitution in message. 5319
pngerror.c PRIVATE 29168
pngget.c Easy access to info, added in libpng-0.99 38447
pnginfo.h png_info is a structure that holds the information in a PNG file so that the application can find out the characteristics of the image. If you are reading the file, this structure will tell you what is in the PNG file. If you are writing the file, fill in the information you want to put into the PNG file, using png_set_*() functions, then call png_write_info(). The names chosen should be very close to the PNG specification, so consult that document for information about the meaning of each field. With libpng < 0.95, it was only possible to directly set and read the the values in the png_info_struct, which meant that the contents and order of the values had to remain fixed. With libpng 0.95 and later, however, there are now functions that abstract the contents of png_info_struct from the application, so this makes it easier to use libpng with dynamic libraries, and even makes it possible to use libraries that don't have all of the libpng ancillary chunk-handing functionality. In libpng-1.5.0 this was moved into a separate private file that is not visible to applications. The following members may have allocated storage attached that should be cleaned up before the structure is discarded: palette, trans, text, pcal_purpose, pcal_units, pcal_params, hist, iccp_name, iccp_profile, splt_palettes, scal_unit, row_pointers, and unknowns. By default, these are automatically freed when the info structure is deallocated, if they were allocated internally by libpng. This behavior can be changed by means of the png_data_freer() function. More allocation details: all the chunk-reading functions that change these members go through the corresponding png_set_* functions. A function to clear these members is available: see png_free_data(). The png_set_* functions do not depend on being able to point info structure members to any of the storage they are passed (they make their own copies), EXCEPT that the png_set_text functions use the same storage passed to them in the text_ptr or itxt_ptr structure argument, and the png_set_rows and png_set_unknowns functions do not make their own copies. 12912
pnglibconf.h Limit image dimensions (bug #251381, #591822, #967656, and #1283961) 39181
pngmem.c Free a png_struct 8323
pngpread.c Push model modes 36811
pngpriv.h The symbols declared in this file (including the functions declared as extern) are PRIVATE. They are not part of the libpng public interface, and are not recommended for use by regular applications. Some of them may become public in the future; others may stay private, change in an incompatible way, or even disappear. Although the libpng users are not forbidden to include this header, they should be well aware of the issues that may arise from doing so. 92027
pngread.c Create a PNG structure for reading, and allocate any memory needed. 144636
pngrio.c Read the data from whatever input you are using. The default routine reads from a file pointer. Note that this routine sometimes gets called with very small lengths, so you should implement some kind of simple buffering if you are using unbuffered reads. This should never be asked to read more than 64K on a 16-bit machine. 3898
pngrtran.c Set the action on getting a CRC error for an ancillary or critical chunk. 167462
pngrutil.c The following is a variation on the above for use with the fixed point values used for gAMA and cHRM. Instead of png_error it issues a warning and returns (-1) - an invalid value because both gAMA and cHRM use *unsigned* integers for fixed point values. 156781
pngset.c override with app values 56014
pngstruct.h The structure that holds the information to read and write PNG files. The only people who need to care about what is inside of this are the people who will be modifying the library for their own special needs. It should NOT be accessed directly by an application. 20605
pngtrans.c Turn on BGR-to-RGB mapping 25240
pngwio.c Write the data to whatever output you are using. The default routine writes to a file pointer. Note that this routine sometimes gets called with very small lengths, so you should implement some kind of simple buffering if you are using unbuffered writes. This should never be asked to write more than 64K on a 16-bit machine. 5601
pngwtran.c Pack pixels into bytes. Pass the true bit depth in bit_depth. The row_info bit depth should be 8 (one pixel per byte). The channels should be 1 (this only happens on grayscale and paletted images). 15337
pngwutil.c Place a 32-bit number into a buffer in PNG byte order. We work with unsigned numbers for convenience, although one supported ancillary chunk uses signed (two's complement) numbers. 84587
README README for libpng version 1.6.39 9255