mirror of
				https://git.code.sf.net/p/libpng/code.git
				synced 2025-07-10 18:04:09 +02:00 
			
		
		
		
	[devel] Update documentation
This commit is contained in:
		
							parent
							
								
									a7a76a674f
								
							
						
					
					
						commit
						2be8b64af2
					
				| @ -105,6 +105,11 @@ scripts/pnglibconf.h: | ||||
| 	@echo "a new one simply make 'scripts/pnglibconf.out' and copy that" >&2 | ||||
| 	@exit 1 | ||||
| 
 | ||||
| # The following is necessary to ensure that the local pnglibconf.h is used, not
 | ||||
| # an installed one (this can happen immediately after on a clean system if
 | ||||
| # 'make test' is the first thing the user does.)
 | ||||
| pngvalid.o pngtest.o: pnglibconf.h | ||||
| 
 | ||||
| SYMBOL_CFLAGS = -DPNGLIB_LIBNAME='PNG@PNGLIB_MAJOR@@PNGLIB_MINOR@_0'\
 | ||||
| 		-DPNGLIB_VERSION='@PNGLIB_VERSION@'\
 | ||||
| 		-DSYMBOL_PREFIX='$(SYMBOL_PREFIX)' | ||||
|  | ||||
| @ -1289,6 +1289,11 @@ scripts/pnglibconf.h: | ||||
| 	@echo "a new one simply make 'scripts/pnglibconf.out' and copy that" >&2 | ||||
| 	@exit 1 | ||||
| 
 | ||||
| # The following is necessary to ensure that the local pnglibconf.h is used, not
 | ||||
| # an installed one (this can happen immediately after on a clean system if
 | ||||
| # 'make test' is the first thing the user does.)
 | ||||
| pngvalid.o pngtest.o: pnglibconf.h | ||||
| 
 | ||||
| .dfn.out: | ||||
| 	rm -f $@ dfn.c dfn?.out | ||||
| 	test -d scripts || mkdir scripts | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| libpng.txt - A description on how to use and modify libpng | ||||
| 
 | ||||
|  libpng version 1.5.0beta36 - July 29, 2010 | ||||
|  libpng version 1.5.0beta36 - July 30, 2010 | ||||
|  Updated and distributed by Glenn Randers-Pehrson | ||||
|  <glennrp at users.sourceforge.net> | ||||
|  Copyright (c) 1998-2010 Glenn Randers-Pehrson | ||||
| @ -11,7 +11,7 @@ libpng.txt - A description on how to use and modify libpng | ||||
| 
 | ||||
|  Based on: | ||||
| 
 | ||||
|  libpng versions 0.97, January 1998, through 1.5.0beta36 - July 29, 2010 | ||||
|  libpng versions 0.97, January 1998, through 1.5.0beta36 - July 30, 2010 | ||||
|  Updated and distributed by Glenn Randers-Pehrson | ||||
|  Copyright (c) 1998-2010 Glenn Randers-Pehrson | ||||
| 
 | ||||
| @ -99,34 +99,68 @@ same instance of a structure. | ||||
| II. Structures | ||||
| 
 | ||||
| There are two main structures that are important to libpng, png_struct | ||||
| and png_info.  The first, png_struct, is an internal structure that | ||||
| will not, for the most part, be used by a user except as the first | ||||
| variable passed to every libpng function call. | ||||
| and png_info.  Both are internal structures that are no longer exposed | ||||
| in the libpng interface (as of libpng 1.5.0). | ||||
| 
 | ||||
| The png_info structure is designed to provide information about the | ||||
| PNG file.  At one time, the fields of png_info were intended to be | ||||
| directly accessible to the user.  However, this tended to cause problems | ||||
| with applications using dynamically loaded libraries, and as a result | ||||
| a set of interface functions for png_info (the png_get_*() and png_set_*() | ||||
| functions) was developed.  The fields of png_info are still available for | ||||
| older applications, but it is suggested that applications use the new | ||||
| interfaces if at all possible. | ||||
| functions) was developed. | ||||
| 
 | ||||
| Applications that do make direct access to the members of png_struct (except | ||||
| for png_ptr->jmpbuf) must be recompiled whenever the library is updated, | ||||
| and applications that make direct access to the members of png_info must | ||||
| be recompiled if they were compiled or loaded with libpng version 1.0.6, | ||||
| in which the members were in a different order.  In version 1.0.7, the | ||||
| members of the png_info structure reverted to the old order, as they were | ||||
| in versions 0.97c through 1.0.5.  Starting with version 2.0.0, both | ||||
| structures are going to be hidden, and the contents of the structures will | ||||
| only be accessible through the png_get/png_set functions. | ||||
| The png_struct structure is the object used by the library to decode a | ||||
| single image.  As of 1.5.0 this structure is also not exposed. | ||||
| 
 | ||||
| Almost all libpng APIs require a pointer to a png_struct as the first argument. | ||||
| Many (in particular the png_set and png_get APIs) also require a pointer | ||||
| to png_info as the second argument.  Some application visible macros | ||||
| defined in png.h designed for basic data access (reading and writing | ||||
| integers in the PNG format) break this rule, but it's almost always safe | ||||
| to assume that a (png_struct*) has to be passed to call an API function. | ||||
| 
 | ||||
| The png.h header file is an invaluable reference for programming with libpng. | ||||
| And while I'm on the topic, make sure you include the libpng header file: | ||||
| 
 | ||||
| #include <png.h> | ||||
| 
 | ||||
| Types | ||||
| 
 | ||||
| The png.h header file defines a number of integral types used by the | ||||
| APIs.  Most of these are fairly obvious; for example types corresponding | ||||
| to integers of particular sizes and types for passing color values. | ||||
| 
 | ||||
| One exception is how non-integral numbers are handled.  For application | ||||
| convenience most APIs that take such numbers have C (double) arguments, | ||||
| however internally PNG, and libpng, use 32 bit signed integers and encode | ||||
| the value by multiplying by 100,000.  As of libpng 1.5.0 a convenience | ||||
| macro PNG_FP_1 is defined in png.h along with a type (png_fixed_point) | ||||
| which is simply (png_int_32). | ||||
| 
 | ||||
| All APIs that take (double) arguments also have an matching API that | ||||
| takes the corresponding fixed point integer arguments.  The fixed point | ||||
| API has the same name as the floating point one with _fixed appended. | ||||
| The actual range of values permitted in the APIs is frequently less than | ||||
| the full range of (png_fixed_point) (-21474 to +21474).  When APIs require | ||||
| a non-negative argument the type is recorded as png_uint_32 above.  Consult | ||||
| the header file and the text below for more information. | ||||
| 
 | ||||
| Configuration | ||||
| 
 | ||||
| The main header file function declarations are frequently protected by C | ||||
| preprocessing directives of the form: | ||||
| 
 | ||||
|     #ifdef PNG_feature_SUPPORTED | ||||
|     declare-function | ||||
|     #endif | ||||
| 
 | ||||
| The library can be built without support for these APIs, although a | ||||
| standard build will have all implemented APIs.  Application programs | ||||
| should check the feature macros before using an API for maximum | ||||
| portability.  From libpng 1.5.0 the feature macros set during the build | ||||
| of libpng are recorded in the header file "pnglibconf.h" and this file | ||||
| is always included by png.h. | ||||
| 
 | ||||
| III. Reading | ||||
| 
 | ||||
| We'll now walk you through the possible functions to call when reading | ||||
| @ -1152,7 +1186,8 @@ a slightly smaller exponent is better. | ||||
|            guess for Mac systems */ | ||||
|    } | ||||
| 
 | ||||
| The png_set_gamma() function handles gamma transformations of the data. | ||||
| The functions png_set_gamma() and its fixed point equivalent | ||||
| png_set_gamma_fixed() handle gamma transformations of the data. | ||||
| Pass both the file gamma and the current screen_gamma.  If the file does | ||||
| not have a gamma value, you can pass one anyway if you have an idea what | ||||
| it is (usually 0.45455 is a good guess for GIF images on PCs).  Note | ||||
| @ -1356,6 +1391,26 @@ while the sixth pass will be 1/2 as wide and 1/2 as high as the original | ||||
| wide as the original, and 1/2 as high, containing all of the odd | ||||
| numbered scanlines.  Phew! | ||||
| 
 | ||||
| If you want to retrieve the separate images you must pass the correct | ||||
| number of rows to each successive call of png_read_rows(). | ||||
| Calculating the number isn't quite as straightforward as the previous | ||||
| paragraph might suggest; think about what happens with an image with a odd | ||||
| number of rows, which passes get the extra row?  To help you libpng 1.5.0 | ||||
| implements a function to return the number of rows and columns in the current | ||||
| pass: | ||||
| 
 | ||||
|     int number_of_rows = png_get_num_rows(png_ptr); | ||||
|     int number_of_cols = png_get_num_cols(png_ptr); | ||||
| 
 | ||||
| Simply call that before each call to png_read_rows().  You must call | ||||
| png_start_read_image() (or png_read_update_info) before the first call to | ||||
| ensure that the number libpng holds internally has been updated. | ||||
| 
 | ||||
| For very small interlaced images the number of rows or columns in a pass | ||||
| can be zero. | ||||
| You don't need to call png_read_rows() in this case, libpng will simply | ||||
| skip to the next pass. | ||||
| 
 | ||||
| If you want libpng to expand the images, call this before calling | ||||
| png_start_read_image() or png_read_update_info(): | ||||
| 
 | ||||
| @ -1368,6 +1423,14 @@ is seven, but may change if another interlace type is added. | ||||
| This function can be called even if the file is not interlaced, | ||||
| where it will return one pass. | ||||
| 
 | ||||
| If you need to get the number of passes later (for example after the call | ||||
| to png_start_read_image()) just call: | ||||
| 
 | ||||
|     number_of_passes = png_get_num_passes(png_ptr); | ||||
| 
 | ||||
| This function just returns the number - it doesn't make any changes to the | ||||
| libpng state. | ||||
| 
 | ||||
| If you are not going to display the image after each pass, but are | ||||
| going to wait until the entire image is read in, use the sparkle | ||||
| effect.  This effect is faster and the end result of either method | ||||
| @ -2529,9 +2592,11 @@ these functions, call the appropriate png_set_*_fn() function. | ||||
| 
 | ||||
| Memory allocation is done through the functions png_malloc(), png_calloc(), | ||||
| and png_free().  These currently just call the standard C functions. | ||||
| png_calloc() calls png_malloc() and then png_memset() to clear the newly | ||||
| allocated memory to zero.  If your pointers can't access more then 64K | ||||
| at a time, you will want to set MAXSEG_64K in zlib.h.  Since it is | ||||
| png_calloc() calls png_malloc() and then clears the newly | ||||
| allocated memory to zero.  There is limited support for certain systems | ||||
| with segmented memory architectures and the types of pointers declared by | ||||
| png.h match this; you will have to use appropriate pointers in your | ||||
| application.  Since it is | ||||
| unlikely that the method of handling memory allocation on a platform | ||||
| will change between applications, these functions must be modified in | ||||
| the library at compile time.  If you prefer to use a different method | ||||
| @ -3118,8 +3183,8 @@ png_get_mmx_bitdepth_threshold(), png_get_mmx_rowbytes_threshold(), | ||||
| png_set_asm_flags(), and png_mmx_supported() | ||||
| 
 | ||||
| We removed the obsolete png_check_sig(), png_memcpy_check(), and | ||||
| png_memset_check() functions.  Instead use !png_sig_cmp(), png_memcpy(), | ||||
| and png_memset(), respectively. | ||||
| png_memset_check() functions.  Instead use !png_sig_cmp(), memcpy(), | ||||
| and memset(), respectively. | ||||
| 
 | ||||
| The function png_set_gray_1_2_4_to_8() was removed. It has been | ||||
| deprecated since libpng-1.0.18 and 1.2.9, when it was replaced with | ||||
| @ -3134,7 +3199,7 @@ to | ||||
| This also applies to the prototype for the user replacement malloc_fn(). | ||||
| 
 | ||||
| The png_calloc() function was added and is used in place of | ||||
| of "png_malloc(); png_memset();" except in the case in png_read_png() | ||||
| of "png_malloc(); memset();" except in the case in png_read_png() | ||||
| where the array consists of pointers; in this case a "for" loop is used | ||||
| after the png_malloc() to set the pointers to NULL, to give robust. | ||||
| behavior in case the application runs out of memory part-way through | ||||
| @ -3301,7 +3366,7 @@ Other rules can be inferred by inspecting the libpng source. | ||||
| 
 | ||||
| XIII. Y2K Compliance in libpng | ||||
| 
 | ||||
| July 29, 2010 | ||||
| July 30, 2010 | ||||
| 
 | ||||
| Since the PNG Development group is an ad-hoc body, we can't make | ||||
| an official declaration. | ||||
|  | ||||
							
								
								
									
										205
									
								
								libpng.3
									
									
									
									
									
								
							
							
						
						
									
										205
									
								
								libpng.3
									
									
									
									
									
								
							| @ -1,4 +1,4 @@ | ||||
| .TH LIBPNG 3 "July 29, 2010" | ||||
| .TH LIBPNG 3 "July 30, 2010" | ||||
| .SH NAME | ||||
| libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta36 | ||||
| .SH SYNOPSIS | ||||
| @ -200,6 +200,18 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta36 | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBint png_get_num_cols (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBint png_get_num_passes (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBint png_get_num_rows (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBpng_uint_32 png_get_oFFs (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fP\fI*offset_x\fP\fB, png_uint_32 \fP\fI*offset_y\fP\fB, int \fI*unit_type\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| @ -216,6 +228,10 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta36 | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBpng_fixed_point png_get_pixel_aspect_ratio_fixed (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBpng_uint_32 png_get_pixels_per_meter (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| @ -242,6 +258,18 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta36 | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_get_sCAL (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, int* \fP\fIunit\fP\fB, double* \fP\fIwidth\fP\fB, double* \fIheight\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_get_sCAL_fixed (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, int* \fP\fIunit\fP\fB, png_fixed_pointp \fP\fIwidth\fP\fB, png_fixed_pointp \fIheight\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_get_sCAL_s (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, int* \fP\fIunit\fP\fB, png_charpp \fP\fIwidth\fP\fB, \fIpng_charppheight\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBpng_bytep png_get_signature (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| @ -306,6 +334,14 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta36 | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBfloat png_get_x_offset_inches (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBpng_fixed_point png_get_x_offset_inches_fixed (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBpng_int_32 png_get_x_offset_microns (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| @ -318,6 +354,14 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta36 | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBfloat png_get_y_offset_inches (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBpng_fixed_point png_get_y_offset_inches_fixed (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBpng_int_32 png_get_y_offset_microns (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| @ -350,14 +394,6 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta36 | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoidp png_memcpy (png_voidp \fP\fIs1\fP\fB, png_voidp \fP\fIs2\fP\fB, png_size_t \fIsize\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoidp png_memset (png_voidp \fP\fIs1\fP\fB, int \fP\fIvalue\fP\fB, png_size_t \fIsize\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_process_data (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_bytep \fP\fIbuffer\fP\fB, png_size_t \fIbuffer_size\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| @ -414,6 +450,10 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta36 | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_set_background_fixed (png_structp \fP\fIpng_ptr\fP\fB, png_color_16p \fP\fIbackground_color\fP\fB, int \fP\fIbackground_gamma_code\fP\fB, int \fP\fIneed_expand\fP\fB, png_uint_32 \fIbackground_gamma\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_set_bgr (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| @ -482,6 +522,10 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta36 | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_set_filter_heuristics_fixed (png_structp \fP\fIpng_ptr\fP\fB, int \fP\fIheuristic_method\fP\fB, int \fP\fInum_weights\fP\fB, png_fixed_point_p \fP\fIfilter_weights\fP\fB, png_fixed_point_p \fIfilter_costs\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_set_flush (png_structp \fP\fIpng_ptr\fP\fB, int \fInrows\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| @ -490,6 +534,10 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta36 | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_set_gamma_fixed (png_structp \fP\fIpng_ptr\fP\fB, png_uint_32 \fP\fIscreen_gamma\fP\fB, png_uint_32 \fIdefault_file_gamma\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_set_gAMA (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, double \fIfile_gamma\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| @ -602,7 +650,7 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta36 | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_set_rgb_to_gray_fixed (png_structp \fP\fIpng_ptr\fP\fB, int error_action png_fixed_point \fP\fIred\fP\fB, png_fixed_point \fIgreen\fP\fB);\fP | ||||
| \fBvoid png_set_rgb_to_gray_fixed (png_structp \fP\fIpng_ptr\fP\fB, int error_action png_uint_32 \fP\fIred\fP\fB, png_uint_32 \fIgreen\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| @ -614,7 +662,21 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta36 | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_set_sCAL (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_charp \fP\fIunit\fP\fB, double \fP\fIwidth\fP\fB, double \fIheight\fP\fB);\fP | ||||
| \fBvoid png_set_sCAL (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, int \fP\fIunit\fP\fB, double \fP\fIwidth\fP\fB, double \fIheight\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_set_sCAL_fixed (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, int \fP\fIunit\fP\fB, png_fixed_point \fP\fIwidth\fP\fB, png_fixed_point \fIheight\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_set_sCAL_s (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, int \fP\fIunit\fP\fB, png_charp \fP\fIwidth\fP\fB, png_charp \fIheight\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| @ -789,7 +851,7 @@ Following is a copy of the libpng.txt file that accompanies libpng. | ||||
| .SH LIBPNG.TXT | ||||
| libpng.txt - A description on how to use and modify libpng | ||||
| 
 | ||||
|  libpng version 1.5.0beta36 - July 29, 2010 | ||||
|  libpng version 1.5.0beta36 - July 30, 2010 | ||||
|  Updated and distributed by Glenn Randers-Pehrson | ||||
|  <glennrp at users.sourceforge.net> | ||||
|  Copyright (c) 1998-2010 Glenn Randers-Pehrson | ||||
| @ -800,7 +862,7 @@ libpng.txt - A description on how to use and modify libpng | ||||
| 
 | ||||
|  Based on: | ||||
| 
 | ||||
|  libpng versions 0.97, January 1998, through 1.5.0beta36 - July 29, 2010 | ||||
|  libpng versions 0.97, January 1998, through 1.5.0beta36 - July 30, 2010 | ||||
|  Updated and distributed by Glenn Randers-Pehrson | ||||
|  Copyright (c) 1998-2010 Glenn Randers-Pehrson | ||||
| 
 | ||||
| @ -888,34 +950,68 @@ same instance of a structure. | ||||
| .SH II. Structures | ||||
| 
 | ||||
| There are two main structures that are important to libpng, png_struct | ||||
| and png_info.  The first, png_struct, is an internal structure that | ||||
| will not, for the most part, be used by a user except as the first | ||||
| variable passed to every libpng function call. | ||||
| and png_info.  Both are internal structures that are no longer exposed | ||||
| in the libpng interface (as of libpng 1.5.0). | ||||
| 
 | ||||
| The png_info structure is designed to provide information about the | ||||
| PNG file.  At one time, the fields of png_info were intended to be | ||||
| directly accessible to the user.  However, this tended to cause problems | ||||
| with applications using dynamically loaded libraries, and as a result | ||||
| a set of interface functions for png_info (the png_get_*() and png_set_*() | ||||
| functions) was developed.  The fields of png_info are still available for | ||||
| older applications, but it is suggested that applications use the new | ||||
| interfaces if at all possible. | ||||
| functions) was developed. | ||||
| 
 | ||||
| Applications that do make direct access to the members of png_struct (except | ||||
| for png_ptr->jmpbuf) must be recompiled whenever the library is updated, | ||||
| and applications that make direct access to the members of png_info must | ||||
| be recompiled if they were compiled or loaded with libpng version 1.0.6, | ||||
| in which the members were in a different order.  In version 1.0.7, the | ||||
| members of the png_info structure reverted to the old order, as they were | ||||
| in versions 0.97c through 1.0.5.  Starting with version 2.0.0, both | ||||
| structures are going to be hidden, and the contents of the structures will | ||||
| only be accessible through the png_get/png_set functions. | ||||
| The png_struct structure is the object used by the library to decode a | ||||
| single image.  As of 1.5.0 this structure is also not exposed. | ||||
| 
 | ||||
| Almost all libpng APIs require a pointer to a png_struct as the first argument. | ||||
| Many (in particular the png_set and png_get APIs) also require a pointer | ||||
| to png_info as the second argument.  Some application visible macros | ||||
| defined in png.h designed for basic data access (reading and writing | ||||
| integers in the PNG format) break this rule, but it's almost always safe | ||||
| to assume that a (png_struct*) has to be passed to call an API function. | ||||
| 
 | ||||
| The png.h header file is an invaluable reference for programming with libpng. | ||||
| And while I'm on the topic, make sure you include the libpng header file: | ||||
| 
 | ||||
| #include <png.h> | ||||
| 
 | ||||
| .SS Types | ||||
| 
 | ||||
| The png.h header file defines a number of integral types used by the | ||||
| APIs.  Most of these are fairly obvious; for example types corresponding | ||||
| to integers of particular sizes and types for passing color values. | ||||
| 
 | ||||
| One exception is how non-integral numbers are handled.  For application | ||||
| convenience most APIs that take such numbers have C (double) arguments, | ||||
| however internally PNG, and libpng, use 32 bit signed integers and encode | ||||
| the value by multiplying by 100,000.  As of libpng 1.5.0 a convenience | ||||
| macro PNG_FP_1 is defined in png.h along with a type (png_fixed_point) | ||||
| which is simply (png_int_32). | ||||
| 
 | ||||
| All APIs that take (double) arguments also have an matching API that | ||||
| takes the corresponding fixed point integer arguments.  The fixed point | ||||
| API has the same name as the floating point one with _fixed appended. | ||||
| The actual range of values permitted in the APIs is frequently less than | ||||
| the full range of (png_fixed_point) (-21474 to +21474).  When APIs require | ||||
| a non-negative argument the type is recorded as png_uint_32 above.  Consult | ||||
| the header file and the text below for more information. | ||||
| 
 | ||||
| .SS Configuration | ||||
| 
 | ||||
| The main header file function declarations are frequently protected by C | ||||
| preprocessing directives of the form: | ||||
| 
 | ||||
|     #ifdef PNG_feature_SUPPORTED | ||||
|     declare-function | ||||
|     #endif | ||||
| 
 | ||||
| The library can be built without support for these APIs, although a | ||||
| standard build will have all implemented APIs.  Application programs | ||||
| should check the feature macros before using an API for maximum | ||||
| portability.  From libpng 1.5.0 the feature macros set during the build | ||||
| of libpng are recorded in the header file "pnglibconf.h" and this file | ||||
| is always included by png.h. | ||||
| 
 | ||||
| .SH III. Reading | ||||
| 
 | ||||
| We'll now walk you through the possible functions to call when reading | ||||
| @ -1941,7 +2037,8 @@ a slightly smaller exponent is better. | ||||
|            guess for Mac systems */ | ||||
|    } | ||||
| 
 | ||||
| The png_set_gamma() function handles gamma transformations of the data. | ||||
| The functions png_set_gamma() and its fixed point equivalent | ||||
| png_set_gamma_fixed() handle gamma transformations of the data. | ||||
| Pass both the file gamma and the current screen_gamma.  If the file does | ||||
| not have a gamma value, you can pass one anyway if you have an idea what | ||||
| it is (usually 0.45455 is a good guess for GIF images on PCs).  Note | ||||
| @ -2145,6 +2242,26 @@ while the sixth pass will be 1/2 as wide and 1/2 as high as the original | ||||
| wide as the original, and 1/2 as high, containing all of the odd | ||||
| numbered scanlines.  Phew! | ||||
| 
 | ||||
| If you want to retrieve the separate images you must pass the correct | ||||
| number of rows to each successive call of png_read_rows(). | ||||
| Calculating the number isn't quite as straightforward as the previous | ||||
| paragraph might suggest; think about what happens with an image with a odd | ||||
| number of rows, which passes get the extra row?  To help you libpng 1.5.0 | ||||
| implements a function to return the number of rows and columns in the current | ||||
| pass: | ||||
| 
 | ||||
|     int number_of_rows = png_get_num_rows(png_ptr); | ||||
|     int number_of_cols = png_get_num_cols(png_ptr); | ||||
| 
 | ||||
| Simply call that before each call to png_read_rows().  You must call | ||||
| png_start_read_image() (or png_read_update_info) before the first call to | ||||
| ensure that the number libpng holds internally has been updated. | ||||
| 
 | ||||
| For very small interlaced images the number of rows or columns in a pass | ||||
| can be zero. | ||||
| You don't need to call png_read_rows() in this case, libpng will simply | ||||
| skip to the next pass. | ||||
| 
 | ||||
| If you want libpng to expand the images, call this before calling | ||||
| png_start_read_image() or png_read_update_info(): | ||||
| 
 | ||||
| @ -2157,6 +2274,14 @@ is seven, but may change if another interlace type is added. | ||||
| This function can be called even if the file is not interlaced, | ||||
| where it will return one pass. | ||||
| 
 | ||||
| If you need to get the number of passes later (for example after the call | ||||
| to png_start_read_image()) just call: | ||||
| 
 | ||||
|     number_of_passes = png_get_num_passes(png_ptr); | ||||
| 
 | ||||
| This function just returns the number - it doesn't make any changes to the | ||||
| libpng state. | ||||
| 
 | ||||
| If you are not going to display the image after each pass, but are | ||||
| going to wait until the entire image is read in, use the sparkle | ||||
| effect.  This effect is faster and the end result of either method | ||||
| @ -3318,9 +3443,11 @@ these functions, call the appropriate png_set_*_fn() function. | ||||
| 
 | ||||
| Memory allocation is done through the functions png_malloc(), png_calloc(), | ||||
| and png_free().  These currently just call the standard C functions. | ||||
| png_calloc() calls png_malloc() and then png_memset() to clear the newly | ||||
| allocated memory to zero.  If your pointers can't access more then 64K | ||||
| at a time, you will want to set MAXSEG_64K in zlib.h.  Since it is | ||||
| png_calloc() calls png_malloc() and then clears the newly | ||||
| allocated memory to zero.  There is limited support for certain systems | ||||
| with segmented memory architectures and the types of pointers declared by | ||||
| png.h match this; you will have to use appropriate pointers in your | ||||
| application.  Since it is | ||||
| unlikely that the method of handling memory allocation on a platform | ||||
| will change between applications, these functions must be modified in | ||||
| the library at compile time.  If you prefer to use a different method | ||||
| @ -3907,8 +4034,8 @@ png_get_mmx_bitdepth_threshold(), png_get_mmx_rowbytes_threshold(), | ||||
| png_set_asm_flags(), and png_mmx_supported() | ||||
| 
 | ||||
| We removed the obsolete png_check_sig(), png_memcpy_check(), and | ||||
| png_memset_check() functions.  Instead use !png_sig_cmp(), png_memcpy(), | ||||
| and png_memset(), respectively. | ||||
| png_memset_check() functions.  Instead use !png_sig_cmp(), memcpy(), | ||||
| and memset(), respectively. | ||||
| 
 | ||||
| The function png_set_gray_1_2_4_to_8() was removed. It has been | ||||
| deprecated since libpng-1.0.18 and 1.2.9, when it was replaced with | ||||
| @ -3923,7 +4050,7 @@ to | ||||
| This also applies to the prototype for the user replacement malloc_fn(). | ||||
| 
 | ||||
| The png_calloc() function was added and is used in place of | ||||
| of "png_malloc(); png_memset();" except in the case in png_read_png() | ||||
| of "png_malloc(); memset();" except in the case in png_read_png() | ||||
| where the array consists of pointers; in this case a "for" loop is used | ||||
| after the png_malloc() to set the pointers to NULL, to give robust. | ||||
| behavior in case the application runs out of memory part-way through | ||||
| @ -4090,7 +4217,7 @@ Other rules can be inferred by inspecting the libpng source. | ||||
| 
 | ||||
| .SH XIII. Y2K Compliance in libpng | ||||
| 
 | ||||
| July 29, 2010 | ||||
| July 30, 2010 | ||||
| 
 | ||||
| Since the PNG Development group is an ad-hoc body, we can't make | ||||
| an official declaration. | ||||
| @ -4332,7 +4459,7 @@ possible without all of you. | ||||
| 
 | ||||
| Thanks to Frank J. T. Wojcik for helping with the documentation. | ||||
| 
 | ||||
| Libpng version 1.5.0beta36 - July 29, 2010: | ||||
| Libpng version 1.5.0beta36 - July 30, 2010: | ||||
| Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc. | ||||
| Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net). | ||||
| 
 | ||||
| @ -4355,7 +4482,7 @@ this sentence. | ||||
| 
 | ||||
| This code is released under the libpng license. | ||||
| 
 | ||||
| libpng versions 1.2.6, August 15, 2004, through 1.5.0beta36, July 29, 2010, are | ||||
| libpng versions 1.2.6, August 15, 2004, through 1.5.0beta36, July 30, 2010, are | ||||
| Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are | ||||
| distributed according to the same disclaimer and license as libpng-1.2.5 | ||||
| with the following individual added to the list of Contributing Authors | ||||
| @ -4454,7 +4581,7 @@ certification mark of the Open Source Initiative. | ||||
| 
 | ||||
| Glenn Randers-Pehrson | ||||
| glennrp at users.sourceforge.net | ||||
| July 29, 2010 | ||||
| July 30, 2010 | ||||
| 
 | ||||
| .\" end of man page | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										138
									
								
								libpngpf.3
									
									
									
									
									
								
							
							
						
						
									
										138
									
								
								libpngpf.3
									
									
									
									
									
								
							| @ -1,4 +1,4 @@ | ||||
| .TH LIBPNGPF 3 "July 29, 2010" | ||||
| .TH LIBPNGPF 3 "July 30, 2010" | ||||
| .SH NAME | ||||
| libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta36 | ||||
| (private functions) | ||||
| @ -7,9 +7,15 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta36 | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_64bit_product (long \fP\fIv1\fP\fB, long \fP\fIv2\fP\fB, unsigned long \fI*hi_product, | ||||
| \fBvoid png_64bit_product (long \fP\fIv1\fP\fB, long \fP\fIv2\fP\fB, unsigned long \fP\fI*hi_product\fP\fB, unsigned long \fI*lo_product\fP\fB);\fP | ||||
| 
 | ||||
| \fBunsigned long \fI*lo_product\fP\fB);\fP | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_ascii_from_fp (png_structp \fP\fIpng_ptr\fP\fB, png_charp \fP\fIascii\fP\fB, png_size_t \fP\fIsize\fP\fB, double \fP\fIfp\fP\fB, unsigned \fIprecision\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| @ -43,6 +49,30 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta36 | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBint png_check_fp_number (png_charp \fP\fIstring\fP\fB, png_size_t \fP\fIsize\fP\fB, int* \fP\fIstatep\fP\fB, png_size_tp \fIwhereami\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBint png_check_fp_string (png_charp \fP\fIstring\fP\fB, png_size_t \fIsize\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBpng_size_t png_check_keyword (png_structp \fP\fIpng_ptr\fP\fB, png_charp \fP\fIkey\fP\fB, png_charpp \fInew_key\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| @ -281,7 +311,21 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta36 | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid *png_far_to_near (png_structp png_ptr,png_voidp \fP\fIptr\fP\fB, int \fIcheck\fP\fB);\fP | ||||
| \fBvoid *png_far_to_near (png_structp \fP\fIpng_ptr\fP\fB, png_voidp \fP\fIptr\fP\fB, int \fIcheck\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_fixed_error (png_structp \fP\fIpng_ptr\fP\fB, \fIpng_const_charp | ||||
| 
 | ||||
| \fBname, double \fIvalue\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| @ -293,6 +337,42 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta36 | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBint png_gamma_significant (png_fixed_point \fIgamma\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBpng_uint_16 png_gamma_16bit_correct (png_structp \fP\fIpng_ptr\fP\fB, unsigned \fP\fIvalue\fP\fB, png_fixed_point \fIgamma\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBpng_byte png_gamma_8bit_correct (png_structp \fP\fIpng_ptr\fP\fB, unsigned \fP\fIvalue\fP\fB, png_fixed_point \fIgamma\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_bKGD (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| @ -437,6 +517,30 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta36 | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBint png_muldiv (png_fixed_point_p \fP\fIres\fP\fB, png_fixed_point \fP\fIa\fP\fB, png_int_32 \fP\fItimes\fP\fB, png_int_32 \fIdiv\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBpng_fixed_point png_muldiv_warn (png_structp \fP\fIpng_ptr\fP\fB, png_fixed_point \fP\fIa\fP\fB, png_int_32 \fP\fItimes\fP\fB, png_int_32 \fIdiv\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_process_IDAT_data (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fP\fIbuffer\fP\fB, png_size_t \fIbuffer_length\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| @ -601,6 +705,30 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.0beta36 | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBpng_fixed_point png_reciprocal (png_fixed_point \fIa\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBpng_fixed_point png_reciprocal2 (png_fixed_point \fP\fIa\fP\fB, png_fixed_point \fIb\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_reset_crc (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| @ -812,7 +940,7 @@ The functions listed above are used privately by libpng | ||||
| and are not recommended for use by applications.  They are | ||||
| not "exported" to applications using shared libraries.  They | ||||
| are listed alphabetically here as an aid to libpng maintainers. | ||||
| See png.h for more information on these functions. | ||||
| See pngpriv.h for more information on these functions. | ||||
| 
 | ||||
| .SH SEE ALSO | ||||
| .BR "png"(5), " libpng"(3), " zlib"(3), " deflate"(5), " " and " zlib"(5) | ||||
|  | ||||
							
								
								
									
										13
									
								
								png.h
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								png.h
									
									
									
									
									
								
							| @ -1,7 +1,7 @@ | ||||
| 
 | ||||
| /* png.h - header file for PNG reference library
 | ||||
|  * | ||||
|  * libpng version 1.5.0beta36 - July 29, 2010 | ||||
|  * libpng version 1.5.0beta36 - July 30, 2010 | ||||
|  * Copyright (c) 1998-2010 Glenn Randers-Pehrson | ||||
|  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) | ||||
|  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) | ||||
| @ -11,7 +11,7 @@ | ||||
|  * Authors and maintainers: | ||||
|  *   libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat | ||||
|  *   libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger | ||||
|  *   libpng versions 0.97, January 1998, through 1.5.0beta36 - July 29, 2010: Glenn | ||||
|  *   libpng versions 0.97, January 1998, through 1.5.0beta36 - July 30, 2010: Glenn | ||||
|  *   See also "Contributing Authors", below. | ||||
|  * | ||||
|  * Note about libpng version numbers: | ||||
| @ -172,7 +172,7 @@ | ||||
|  * | ||||
|  * This code is released under the libpng license. | ||||
|  * | ||||
|  * libpng versions 1.2.6, August 15, 2004, through 1.5.0beta36, July 29, 2010, are | ||||
|  * libpng versions 1.2.6, August 15, 2004, through 1.5.0beta36, July 30, 2010, are | ||||
|  * Copyright (c) 2004, 2006-2010 Glenn Randers-Pehrson, and are | ||||
|  * distributed according to the same disclaimer and license as libpng-1.2.5 | ||||
|  * with the following individual added to the list of Contributing Authors: | ||||
| @ -284,7 +284,7 @@ | ||||
|  * Y2K compliance in libpng: | ||||
|  * ========================= | ||||
|  * | ||||
|  *    July 29, 2010 | ||||
|  *    July 30, 2010 | ||||
|  * | ||||
|  *    Since the PNG Development group is an ad-hoc body, we can't make | ||||
|  *    an official declaration. | ||||
| @ -348,7 +348,7 @@ | ||||
| /* Version information for png.h - this should match the version in png.c */ | ||||
| #define PNG_LIBPNG_VER_STRING "1.5.0beta36" | ||||
| #define PNG_HEADER_VERSION_STRING \ | ||||
|      " libpng version 1.5.0beta36 - July 29, 2010\n" | ||||
|      " libpng version 1.5.0beta36 - July 30, 2010\n" | ||||
| 
 | ||||
| #define PNG_LIBPNG_VER_SONUM   15 | ||||
| #define PNG_LIBPNG_VER_DLLNUM  15 | ||||
| @ -1092,6 +1092,7 @@ PNG_EXPORT(int,png_set_interlace_handling,(png_structp png_ptr),,45); | ||||
|  */ | ||||
| PNG_EXPORT(int,png_get_num_passes,(png_structp png_ptr),,215); | ||||
| PNG_EXPORT(png_uint_32,png_get_num_rows,(png_structp png_ptr),,216); | ||||
| PNG_EXPORT(png_uint_32,png_get_num_cols,(png_structp png_ptr),,218); | ||||
| #endif | ||||
| 
 | ||||
| #if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) | ||||
| @ -2055,7 +2056,7 @@ PNG_EXPORT(void,png_save_uint_16,(png_bytep buf, unsigned int i),,207); | ||||
|  * use is one more than this.) | ||||
|  */ | ||||
| #ifdef PNG_EXPORT_LAST_ORDINAL | ||||
|   PNG_EXPORT_LAST_ORDINAL(217); | ||||
|   PNG_EXPORT_LAST_ORDINAL(218); | ||||
| #endif | ||||
| 
 | ||||
| #ifdef __cplusplus | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| 
 | ||||
| /* pngerror.c - stub functions for i/o and memory allocation
 | ||||
|  * | ||||
|  * Last changed in libpng 1.5.0 [July 29, 2010] | ||||
|  * Last changed in libpng 1.5.0 [July 30, 2010] | ||||
|  * Copyright (c) 1998-2010 Glenn Randers-Pehrson | ||||
|  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) | ||||
|  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) | ||||
| @ -256,7 +256,7 @@ png_fixed_error(png_structp png_ptr, png_const_charp name, double value) | ||||
|    msg[fixed_message_ln + iin] = 0; | ||||
|    /* To discover 'value' put a breakpoint here: */ | ||||
|    png_error(png_ptr, msg); | ||||
|    value = value; png_ptr = png_ptr; /* Quiet the compiler */ | ||||
|    value = value; /* Quiet the compiler */ | ||||
| } | ||||
| #endif | ||||
| #endif | ||||
|  | ||||
							
								
								
									
										12
									
								
								pngpriv.h
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								pngpriv.h
									
									
									
									
									
								
							| @ -1,7 +1,7 @@ | ||||
| 
 | ||||
| /* pngpriv.h - private declarations for use inside libpng
 | ||||
|  * | ||||
|  * libpng version 1.5.0beta36 - July 29, 2010 | ||||
|  * libpng version 1.5.0beta36 - July 30, 2010 | ||||
|  * For conditions of distribution and use, see copyright notice in png.h | ||||
|  * Copyright (c) 1998-2010 Glenn Randers-Pehrson | ||||
|  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) | ||||
| @ -1042,8 +1042,8 @@ PNG_EXTERN void png_fixed_error PNGARG((png_structp png_ptr, | ||||
|  * maximum ridiculous exponent. | ||||
|  */ | ||||
| #define PNG_sCAL_MAX_DIGITS (PNG_sCAL_PRECISION+1/*.*/+1/*E*/+10/*exponent*/) | ||||
| PNG_EXTERN void png_ascii_from_fp(png_structp png_ptr, png_charp ascii, | ||||
|     png_size_t size, double fp, unsigned precision); | ||||
| PNG_EXTERN void png_ascii_from_fp PNGARG((png_structp png_ptr, png_charp ascii, | ||||
|     png_size_t size, double fp, unsigned precision)); | ||||
| #endif /* READ_sCAL && FLOATING_POINT */ | ||||
| 
 | ||||
| #if defined(PNG_sCAL_SUPPORTED) || defined(PNG_pCAL_SUPPORTED) | ||||
| @ -1110,13 +1110,13 @@ PNG_EXTERN void png_ascii_from_fp(png_structp png_ptr, png_charp ascii, | ||||
|  * that omits the last character (i.e. set the size to the index of | ||||
|  * the problem character.)  This has not been tested within libpng. | ||||
|  */ | ||||
| PNG_EXTERN int png_check_fp_number(png_charp string, png_size_t size, | ||||
|     int *statep, png_size_tp whereami); | ||||
| PNG_EXTERN int png_check_fp_number PNGARG((png_charp string, png_size_t size, | ||||
|     int *statep, png_size_tp whereami)); | ||||
| 
 | ||||
| /* This is the same but it checks a complete string and returns true
 | ||||
|  * only if it just contains a floating point number. | ||||
|  */ | ||||
| PNG_EXTERN int png_check_fp_string(png_charp string, png_size_t size); | ||||
| PNG_EXTERN int png_check_fp_string PNGARG((png_charp string, png_size_t size)); | ||||
| #endif /* pCAL || sCAL */ | ||||
| 
 | ||||
| #if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_INCH_CONVERSIONS_SUPPORTED) | ||||
|  | ||||
							
								
								
									
										18
									
								
								pngrutil.c
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								pngrutil.c
									
									
									
									
									
								
							| @ -1,7 +1,7 @@ | ||||
| 
 | ||||
| /* pngrutil.c - utilities to read a PNG file
 | ||||
|  * | ||||
|  * Last changed in libpng 1.4.1 [July 29, 2010] | ||||
|  * Last changed in libpng 1.4.1 [July 30, 2010] | ||||
|  * Copyright (c) 1998-2010 Glenn Randers-Pehrson | ||||
|  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) | ||||
|  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) | ||||
| @ -3485,5 +3485,21 @@ png_get_num_rows(png_structp png_ptr) | ||||
|    /* Here on error */ | ||||
|    return 0; | ||||
| } | ||||
| 
 | ||||
| png_uint_32 PNGAPI | ||||
| png_get_num_cols(png_structp png_ptr) | ||||
| { | ||||
|    if (png_ptr != NULL) | ||||
|    { | ||||
|       if (png_ptr->flags & PNG_FLAG_ROW_INIT) | ||||
| 	 return png_ptr->iwidth; | ||||
|       else | ||||
| 	 png_error(png_ptr, "Call png_start_read_image or png_read_update_info " | ||||
| 	    "before png_get_num_cols"); | ||||
|    } | ||||
| 
 | ||||
|    /* Here on error */ | ||||
|    return 0; | ||||
| } | ||||
| #endif /* SEQUENTIAL READ */ | ||||
| #endif /* PNG_READ_SUPPORTED */ | ||||
|  | ||||
| @ -227,3 +227,4 @@ EXPORTS | ||||
|  png_get_num_passes @215 | ||||
|  png_get_num_rows @216 | ||||
|  png_set_background_fixed @217 | ||||
|  png_get_num_cols @218 | ||||
|  | ||||
| @ -223,3 +223,4 @@ EXPORTS | ||||
|  png_get_num_passes @215 | ||||
|  png_get_num_rows @216 | ||||
|  png_set_background_fixed @217 | ||||
|  png_get_num_cols @218 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Glenn Randers-Pehrson
						Glenn Randers-Pehrson