Changeset 846 for trunk/src/3rdparty/libpng/libpng.3
- Timestamp:
- May 5, 2011, 5:36:53 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/vendor/nokia/qt/4.7.2 (added) merged: 845 /branches/vendor/nokia/qt/current merged: 844 /branches/vendor/nokia/qt/4.6.3 removed
- Property svn:mergeinfo changed
-
trunk/src/3rdparty/libpng/libpng.3
r561 r846 1 .TH LIBPNG 3 " September 10, 2009"1 .TH LIBPNG 3 "January 3, 2010" 2 2 .SH NAME 3 libpng \- Portable Network Graphics (PNG) Reference Library 1. 2.403 libpng \- Portable Network Graphics (PNG) Reference Library 1.4.0 4 4 .SH SYNOPSIS 5 5 \fI\fB … … 13 13 \fI\fB 14 14 15 \fBint png_check_sig (png_bytep \fP\fIsig\fP\fB, int \fInum\fP\fB);\fP 15 \fBvoid png_benign_error (png_structp \fP\fIpng_ptr\fP\fB, png_const_charp \fIerror\fP\fB);\fP 16 17 \fI\fB 18 19 \fBvoid png_chunk_benign_error (png_structp \fP\fIpng_ptr\fP\fB, png_const_charp \fIerror\fP\fB);\fP 16 20 17 21 \fI\fB … … 57 61 \fI\fB 58 62 59 \fBint png_debug(int \fP\fIlevel\fP\fB, png_const_charp \fImessage\fP\fB);\fP60 61 \fI\fB62 63 \fBint png_debug1(int \fP\fIlevel\fP\fB, png_const_charp \fP\fImessage\fP\fB, \fIp1\fP\fB);\fP64 65 \fI\fB66 67 \fBint png_debug2(int \fP\fIlevel\fP\fB, png_const_charp \fP\fImessage\fP\fB, \fP\fIp1\fP\fB, \fIp2\fP\fB);\fP68 69 \fI\fB70 71 63 \fBvoid png_destroy_info_struct (png_structp \fP\fIpng_ptr\fP\fB, png_infopp \fIinfo_ptr_ptr\fP\fB);\fP 72 64 … … 121 113 \fI\fB 122 114 115 \fBpng_uint_32 png_get_chunk_cache_max (png_structp \fIpng_ptr\fP\fB);\fP 116 117 \fI\fB 118 123 119 \fBpng_byte png_get_color_type (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP 124 120 125 121 \fI\fB 126 122 123 \fBpng_uint_32 png_get_compression_buffer_size (png_structp \fIpng_ptr\fP\fB);\fP 124 125 \fI\fB 126 127 127 \fBpng_byte png_get_compression_type (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP 128 128 … … 177 177 \fI\fB 178 178 179 \fB#if \fI!defined(PNG_1_0_X)180 181 179 \fBpng_int_32 png_get_int_32 (png_bytep \fIbuf\fP\fB);\fP 182 180 183 \fI\fB#endif184 185 181 \fI\fB 186 182 … … 263 259 \fI\fB 264 260 265 \fBpng_uint_32 png_get_tRNS (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_bytep \fP\fI*trans\fP\fB, int \fP\fI*num_trans\fP\fB, png_color_16p \fI*trans_ values\fP\fB);\fP266 267 \fI\fB 268 269 \fB #if \fI!defined(PNG_1_0_X)261 \fBpng_uint_32 png_get_tRNS (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_bytep \fP\fI*trans\fP\fB, int \fP\fI*num_trans\fP\fB, png_color_16p \fI*trans_color\fP\fB);\fP 262 263 \fI\fB 264 265 \fB/* This function is really an inline macro. \fI*/ 270 266 271 267 \fBpng_uint_16 png_get_uint_16 (png_bytep \fIbuf\fP\fB);\fP … … 277 273 \fI\fB 278 274 275 \fB/* This function is really an inline macro. \fI*/ 276 279 277 \fBpng_uint_32 png_get_uint_32 (png_bytep \fIbuf\fP\fB);\fP 280 278 281 \fI\fB#endif282 283 279 \fI\fB 284 280 … … 331 327 \fI\fB 332 328 333 \fBpng_uint_32 png_get_compression_buffer_size (png_structp \fIpng_ptr\fP\fB);\fP334 335 \fI\fB336 337 329 \fBint png_handle_as_unknown (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fIchunk_name\fP\fB);\fP 338 330 … … 343 335 \fI\fB 344 336 345 \fBDEPRECATED: void png_info_init (png_infop \fIinfo_ptr\fP\fB);\fP 346 347 \fI\fB 348 349 \fBDEPRECATED: void png_info_init_2 (png_infopp \fP\fIptr_ptr\fP\fB, png_size_t \fIpng_info_struct_size\fP\fB);\fP 350 351 \fI\fB 352 353 \fBpng_voidp png_malloc (png_structp \fP\fIpng_ptr\fP\fB, png_uint_32 \fIsize\fP\fB);\fP 354 355 \fI\fB 356 357 \fBpng_voidp png_malloc_default(png_structp \fP\fIpng_ptr\fP\fB, png_uint_32 \fIsize\fP\fB);\fP 337 \fBpng_voidp png_malloc (png_structp \fP\fIpng_ptr\fP\fB, png_alloc_size_t \fIsize\fP\fB);\fP 338 339 \fI\fB 340 341 \fBpng_voidp png_malloc_default(png_structp \fP\fIpng_ptr\fP\fB, png_alloc_size_t \fIsize\fP\fB);\fP 358 342 359 343 \fI\fB … … 363 347 \fI\fB 364 348 365 \fBpng_voidp png_memcpy_check (png_structp \fP\fIpng_ptr\fP\fB, png_voidp \fP\fIs1\fP\fB, png_voidp \fP\fIs2\fP\fB, png_uint_32 \fIsize\fP\fB);\fP366 367 \fI\fB368 369 349 \fBvoidp png_memset (png_voidp \fP\fIs1\fP\fB, int \fP\fIvalue\fP\fB, png_size_t \fIsize\fP\fB);\fP 370 350 371 351 \fI\fB 372 352 373 \fBpng_voidp png_memset_check (png_structp \fP\fIpng_ptr\fP\fB, png_voidp \fP\fIs1\fP\fB, int \fP\fIvalue\fP\fB, png_uint_32 \fIsize\fP\fB);\fP374 375 \fI\fB376 377 \fBDEPRECATED: void png_permit_empty_plte (png_structp \fP\fIpng_ptr\fP\fB, int \fIempty_plte_permitted\fP\fB);\fP378 379 \fI\fB380 381 353 \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 382 354 … … 387 359 \fI\fB 388 360 389 \fBvoid png_read_destroy (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_infop \fIend_info_ptr\fP\fB);\fP390 391 \fI\fB392 393 361 \fBvoid png_read_end (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP 394 362 … … 399 367 \fI\fB 400 368 401 \fBDEPRECATED: void png_read_init (png_structp \fIpng_ptr\fP\fB);\fP402 403 \fI\fB404 405 \fBDEPRECATED: void png_read_init_2 (png_structpp \fP\fIptr_ptr\fP\fB, png_const_charp \fP\fIuser_png_ver\fP\fB, png_size_t \fP\fIpng_struct_size\fP\fB, png_size_t \fIpng_info_size\fP\fB);\fP406 407 \fI\fB408 409 369 \fBvoid png_read_info (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP 410 370 … … 427 387 \fI\fB 428 388 429 \fB#if \fI!defined(PNG_1_0_X)430 431 389 \fBpng_save_int_32 (png_bytep \fP\fIbuf\fP\fB, png_int_32 \fIi\fP\fB);\fP 432 390 … … 443 401 \fBvoid png_set_add_alpha (png_structp \fP\fIpng_ptr\fP\fB, png_uint_32 \fP\fIfiller\fP\fB, int \fIflags\fP\fB);\fP 444 402 445 \fI\fB#endif446 447 403 \fI\fB 448 404 … … 467 423 \fI\fB 468 424 425 \fBvoid png_set_chunk_cache_max (png_structp \fP\fIpng_ptr\fP\fB, png_uint_32 \fIuser_chunk_cache_max\fP\fB);\fP 426 427 \fI\fB 428 469 429 \fBvoid png_set_compression_level (png_structp \fP\fIpng_ptr\fP\fB, int \fIlevel\fP\fB);\fP 470 430 … … 575 535 \fI\fB 576 536 537 \fBjmp_buf* png_set_longjmp_fn (png_structp \fP\fIpng_ptr\fP\fB, png_longjmp_ptr \fP\fIlongjmp_fn\fP\fB, size_t \fIjmp_buf_size\fP\fB);\fP 538 539 \fI\fB 540 577 541 \fBvoid png_set_mem_fn(png_structp \fP\fIpng_ptr\fP\fB, png_voidp \fP\fImem_ptr\fP\fB, png_malloc_ptr \fP\fImalloc_fn\fP\fB, png_free_ptr \fIfree_fn\fP\fB);\fP 578 542 … … 687 651 \fI\fB 688 652 689 \fBvoid png_set_tRNS (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_bytep \fP\fItrans\fP\fB, int \fP\fInum_trans\fP\fB, png_color_16p \fItrans_ values\fP\fB);\fP653 \fBvoid png_set_tRNS (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_bytep \fP\fItrans\fP\fB, int \fP\fInum_trans\fP\fB, png_color_16p \fItrans_color\fP\fB);\fP 690 654 691 655 \fI\fB … … 759 723 \fI\fB 760 724 761 \fBvoid png_write_destroy (png_structp \fIpng_ptr\fP\fB);\fP762 763 \fI\fB764 765 725 \fBvoid png_write_end (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP 766 726 … … 775 735 \fI\fB 776 736 777 \fBDEPRECATED: void png_write_init (png_structp \fIpng_ptr\fP\fB);\fP778 779 \fI\fB780 781 \fBDEPRECATED: void png_write_init_2 (png_structpp \fP\fIptr_ptr\fP\fB, png_const_charp \fP\fIuser_png_ver\fP\fB, png_size_t \fP\fIpng_struct_size\fP\fB, png_size_t \fIpng_info_size\fP\fB);\fP782 783 \fI\fB784 785 737 \fBvoid png_write_info (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP 786 738 … … 800 752 801 753 \fBvoid png_write_rows (png_structp \fP\fIpng_ptr\fP\fB, png_bytepp \fP\fIrow\fP\fB, png_uint_32 \fInum_rows\fP\fB);\fP 754 755 \fI\fB 756 757 \fBvoid png_write_sig (png_structp \fIpng_ptr\fP\fB);\fP 802 758 803 759 \fI\fB … … 822 778 libpng.txt - A description on how to use and modify libpng 823 779 824 libpng version 1. 2.40 - September 10, 2009780 libpng version 1.4.0 - January 3, 2010 825 781 Updated and distributed by Glenn Randers-Pehrson 826 782 <glennrp at users.sourceforge.net> … … 833 789 Based on: 834 790 835 libpng versions 0.97, January 1998, through 1. 2.40 - September 10, 2009791 libpng versions 0.97, January 1998, through 1.4.0 - January 3, 2010 836 792 Updated and distributed by Glenn Randers-Pehrson 837 793 Copyright (c) 1998-2009 Glenn Randers-Pehrson … … 862 818 863 819 For examples of libpng usage, see the files "example.c", "pngtest.c", 864 and the files in the "contrib" directory, all of which are included in the865 libpng distribution.820 and the files in the "contrib" directory, all of which are included in 821 the libpng distribution. 866 822 867 823 Libpng was written as a companion to the PNG specification, as a way … … 1231 1187 width_max = png_get_user_width_max(png_ptr); 1232 1188 height_max = png_get_user_height_max(png_ptr); 1189 1190 The PNG specification sets no limit on the number of ancillary chunks 1191 allowed in a PNG datastream. You can impose a limit on the total number 1192 of sPLT, tEXt, iTXt, zTXt, and unknown chunks that will be stored, with 1193 1194 png_set_chunk_cache_max(png_ptr, user_chunk_cache_max); 1195 1196 where 0x7fffffffL means unlimited. You can retrieve this limit with 1197 1198 chunk_cache_max = png_get_chunk_cache_max(png_ptr); 1199 1200 This limit also applies to the number of buffers that can be allocated 1201 by png_decompress_chunk() while decompressing iTXt, zTXt, and iCCP chunks. 1233 1202 1234 1203 .SS The high-level read interface … … 1259 1228 to transparency 1260 1229 PNG_TRANSFORM_SWAP_ENDIAN Byte-swap 16-bit samples 1230 PNG_TRANSFORM_GRAY_TO_RGB Expand grayscale samples 1231 to RGB (or GA to RGBA) 1261 1232 1262 1233 (This excludes setting a background color, doing gamma transformation, … … 1265 1236 png_read_png(png_ptr, info_ptr, png_transforms, NULL) 1266 1237 1267 where png_transforms is an integer containing the bitwise OR of 1268 s ome set of transformation flags. This call is equivalent to png_read_info(),1238 where png_transforms is an integer containing the bitwise OR of some 1239 set of transformation flags. This call is equivalent to png_read_info(), 1269 1240 followed the set of transformations indicated by the transform mask, 1270 1241 then png_read_image(), and finally png_read_end(). … … 1367 1338 interlace_type - (PNG_INTERLACE_NONE or 1368 1339 PNG_INTERLACE_ADAM7) 1369 Any or all of interlace_type, compression_type, of 1340 1341 Any or all of interlace_type, compression_type, or 1370 1342 filter_method can be NULL if you are 1371 1343 not interested in their values. 1372 1344 1373 channels = png_get_channels(png_ptr, info_ptr); 1374 channels - number of channels of info for the 1375 color type (valid values are 1 (GRAY, 1376 PALETTE), 2 (GRAY_ALPHA), 3 (RGB), 1377 4 (RGB_ALPHA or RGB + filler byte)) 1378 rowbytes = png_get_rowbytes(png_ptr, info_ptr); 1379 rowbytes - number of bytes needed to hold a row 1380 1381 signature = png_get_signature(png_ptr, info_ptr); 1382 signature - holds the signature read from the 1383 file (if any). The data is kept in 1384 the same offset it would be if the 1385 whole signature were read (i.e. if an 1386 application had already read in 4 1387 bytes of signature before starting 1388 libpng, the remaining 4 bytes would 1389 be in signature[4] through signature[7] 1390 (see png_set_sig_bytes())). 1391 1345 Note that png_get_IHDR() returns 32-bit data into 1346 the application's width and height variables. 1347 This is an unsafe situation if these are 16-bit 1348 variables. In such situations, the 1349 png_get_image_width() and png_get_image_height() 1350 functions described below are safer. 1392 1351 1393 1352 width = png_get_image_width(png_ptr, … … 1406 1365 info_ptr); 1407 1366 1367 channels = png_get_channels(png_ptr, info_ptr); 1368 channels - number of channels of info for the 1369 color type (valid values are 1 (GRAY, 1370 PALETTE), 2 (GRAY_ALPHA), 3 (RGB), 1371 4 (RGB_ALPHA or RGB + filler byte)) 1372 rowbytes = png_get_rowbytes(png_ptr, info_ptr); 1373 rowbytes - number of bytes needed to hold a row 1374 1375 signature = png_get_signature(png_ptr, info_ptr); 1376 signature - holds the signature read from the 1377 file (if any). The data is kept in 1378 the same offset it would be if the 1379 whole signature were read (i.e. if an 1380 application had already read in 4 1381 bytes of signature before starting 1382 libpng, the remaining 4 bytes would 1383 be in signature[4] through signature[7] 1384 (see png_set_sig_bytes())). 1408 1385 1409 1386 These are also important, but their validity depends on whether the chunk … … 1411 1388 png_get_<chunk>(png_ptr, info_ptr, ...) functions return non-zero if the 1412 1389 data has been read, or zero if it is missing. The parameters to the 1413 png_get_<chunk> are set directly if they are simple data types, or a pointer1414 into the info_ptr is returned for any complex types.1390 png_get_<chunk> are set directly if they are simple data types, or a 1391 pointer into the info_ptr is returned for any complex types. 1415 1392 1416 1393 png_get_PLTE(png_ptr, info_ptr, &palette, … … 1450 1427 given color type (png_color_16) 1451 1428 1452 png_get_tRNS(png_ptr, info_ptr, &trans , &num_trans,1453 & trans_values);1454 trans - array of transparent entries for1455 palette (PNG_INFO_tRNS)1456 trans_ values- graylevel or color sample values of1429 png_get_tRNS(png_ptr, info_ptr, &trans_alpha, 1430 &num_trans, &trans_color); 1431 trans_alpha - array of alpha (transparency) 1432 entries for palette (PNG_INFO_tRNS) 1433 trans_color - graylevel or color sample values of 1457 1434 the single transparent color for 1458 1435 non-paletted images (PNG_INFO_tRNS) … … 1496 1473 text_ptr[i].lang_key - keyword in UTF-8 1497 1474 (empty string for unknown). 1475 Note that the itxt_length, lang, and lang_key 1476 members of the text_ptr structure only exist 1477 when the library is built with iTXt chunk support. 1478 1498 1479 num_text - number of comments (same as 1499 1480 num_comments; you can put NULL here … … 1675 1656 added. It expands the sample depth without changing tRNS to alpha. 1676 1657 1658 As of libpng version 1.4.0, not all possible expansions are supported. 1659 1660 In the following table, the 01 means grayscale with depth<8, 31 means 1661 indexed with depth<8, other numerals represent the color type, "T" means 1662 the tRNS chunk is present, A means an alpha channel is present, and O 1663 means tRNS or alpha is present but all pixels in the image are opaque. 1664 1665 FROM 01 31 0 0T 0O 2 2T 2O 3 3T 3O 4A 4O 6A 6O 1666 TO 1667 01 - 1668 31 - 1669 0 1 - 1670 0T - 1671 0O - 1672 2 GX - 1673 2T - 1674 2O - 1675 3 1 - 1676 3T - 1677 3O - 1678 4A T - 1679 4O - 1680 6A GX TX TX - 1681 6O GX TX - 1682 1683 Within the matrix, 1684 "-" means the transformation is not supported. 1685 "X" means the transformation is obtained by png_set_expand(). 1686 "1" means the transformation is obtained by 1687 png_set_expand_gray_1_2_4_to_8 1688 "G" means the transformation is obtained by 1689 png_set_gray_to_rgb(). 1690 "P" means the transformation is obtained by 1691 png_set_expand_palette_to_rgb(). 1692 "T" means the transformation is obtained by 1693 png_set_tRNS_to_alpha(). 1694 1677 1695 PNG can have files with 16 bits per channel. If you only can handle 1678 1696 8 bits per channel, this will strip the pixels down to 8 bit. … … 1708 1726 PNG files have possible bit depths of 1, 2, 4, 8, and 16. All pixels 1709 1727 stored in a PNG image have been "scaled" or "shifted" up to the next 1710 higher possible bit depth (e.g. from 5 bits/sample in the range [0,31] to1711 8 bits/sample in the range [0, 255]). However, it is also possible to 1712 convert the PNG pixel data back to the original bit depth of the image. 1713 This call reduces the pixels back down to the original bit depth:1728 higher possible bit depth (e.g. from 5 bits/sample in the range [0,31] 1729 to 8 bits/sample in the range [0, 255]). However, it is also possible 1730 to convert the PNG pixel data back to the original bit depth of the 1731 image. This call reduces the pixels back down to the original bit depth: 1714 1732 1715 1733 png_color_8p sig_bit; … … 1898 1916 png_set_gamma(png_ptr, screen_gamma, 0.45455); 1899 1917 1900 If you need to reduce an RGB file to a paletted file, or if a paletted1901 file has more entries then will fit on your screen, png_set_dither()1902 will do that. Note that this is a simple match dither that merely1903 finds the closest color available. This should work fairly well with1904 optimized palettes, and fairly badly with linear color cubes. If you1905 pass a palette that is larger then maximum_colors, the file will1906 reduce the number of colors in the palette so it will fit into1907 maximum_colors. If there is a histogram, it will use it to make1908 more intelligent choices when reducing the palette. If there is no1909 histogram, it may not do as good a job.1910 1911 if (color_type & PNG_COLOR_MASK_COLOR)1912 {1913 if (png_get_valid(png_ptr, info_ptr,1914 PNG_INFO_PLTE))1915 {1916 png_uint_16p histogram = NULL;1917 1918 png_get_hIST(png_ptr, info_ptr,1919 &histogram);1920 png_set_dither(png_ptr, palette, num_palette,1921 max_screen_colors, histogram, 1);1922 }1923 else1924 {1925 png_color std_color_cube[MAX_SCREEN_COLORS] =1926 { ... colors ... };1927 1928 png_set_dither(png_ptr, std_color_cube,1929 MAX_SCREEN_COLORS, MAX_SCREEN_COLORS,1930 NULL,0);1931 }1932 }1933 1934 1918 PNG files describe monochrome as black being zero and white being one. 1935 1919 The following code will reverse this (make black be one and white be … … 2158 2142 This function may be safely called when the relevant storage has 2159 2143 already been freed, or has not yet been allocated, or was allocated 2160 by the user and not by libpng, and will in those 2161 cases do nothing. The "seq" parameter is ignored if only one item 2162 of the selected data type, such as PLTE, is allowed. If "seq" is not 2163 -1, and multiple items are allowed for the data type identified in 2164 the mask, such as text or sPLT, only the n'th item in the structure 2165 is freed, where n is "seq". 2144 by the user and not by libpng, and will in those cases do nothing. 2145 The "seq" parameter is ignored if only one item of the selected data 2146 type, such as PLTE, is allowed. If "seq" is not -1, and multiple items 2147 are allowed for the data type identified in the mask, such as text or 2148 sPLT, only the n'th item in the structure is freed, where n is "seq". 2166 2149 2167 2150 The default behavior is only to free data that was allocated internally … … 2202 2185 2203 2186 The png_free_data() function will turn off the "valid" flag for anything 2204 it frees. If you need to turn the flag off for a chunk that was freed by your2205 application instead of by libpng, you can use2187 it frees. If you need to turn the flag off for a chunk that was freed by 2188 your application instead of by libpng, you can use 2206 2189 2207 2190 png_set_invalid(png_ptr, info_ptr, mask); … … 2513 2496 a PNG datastream that is to be embedded in a MNG datastream). The third 2514 2497 parameter is a flag that indicates which filter type(s) are to be tested 2515 for each scanline. See the PNG specification for details on the specific filter2516 types.2498 for each scanline. See the PNG specification for details on the specific 2499 filter types. 2517 2500 2518 2501 … … 2680 2663 (png_color_16) 2681 2664 2682 png_set_tRNS(png_ptr, info_ptr, trans , num_trans,2683 trans_values);2684 trans - array of transparent entries for2685 palette (PNG_INFO_tRNS)2686 trans_ values- graylevel or color sample values2665 png_set_tRNS(png_ptr, info_ptr, trans_alpha, 2666 num_trans, trans_color); 2667 trans_alpha - array of alpha (transparency) 2668 entries for palette (PNG_INFO_tRNS) 2669 trans_color - graylevel or color sample values 2687 2670 (in order red, green, blue) of the 2688 2671 single transparent color for … … 2723 2706 text_ptr[i].translated_keyword - keyword in UTF-8 (NULL 2724 2707 or empty for unknown). 2708 Note that the itxt_length, lang, and lang_key 2709 members of the text_ptr structure only exist 2710 when the library is built with iTXt chunk support. 2711 2725 2712 num_text - number of comments 2726 2713 … … 2928 2915 Note that there is one transformation you may need to do before 2929 2916 png_write_info(). In PNG files, the alpha channel in an image is the 2930 level of opacity. If your data is supplied as a level of 2931 transparency, you can invert the alpha channel before you write it, so 2932 that 0 is fully transparent and 255 (in 8-bit or paletted images) or 2933 65535(in 16-bit images) is fully opaque, with2917 level of opacity. If your data is supplied as a level of transparency, 2918 you can invert the alpha channel before you write it, so that 0 is 2919 fully transparent and 255 (in 8-bit or paletted images) or 65535 2920 (in 16-bit images) is fully opaque, with 2934 2921 2935 2922 png_set_invert_alpha(png_ptr); … … 3118 3105 png_write_row(png_ptr, row_pointer); 3119 3106 3120 When the file is interlaced, things can get a good deal more 3121 complicated. The only currently (as of the PNG Specification 3122 version 1.2, dated July 1999) defined interlacing scheme for PNG files 3123 is the "Adam7" interlace scheme, that breaks down an 3124 image into seven smaller images of varying size. libpng will build 3125 these images for you, or you can do them yourself. If you want to 3126 build them yourself, see the PNG specification for details of which 3127 pixels to write when. 3107 When the file is interlaced, things can get a good deal more complicated. 3108 The only currently (as of the PNG Specification version 1.2, dated July 3109 1999) defined interlacing scheme for PNG files is the "Adam7" interlace 3110 scheme, that breaks down an image into seven smaller images of varying 3111 size. libpng will build these images for you, or you can do them 3112 yourself. If you want to build them yourself, see the PNG specification 3113 for details of which pixels to write when. 3128 3114 3129 3115 If you don't want libpng to handle the interlacing details, just … … 3137 3123 png_set_interlace_handling(png_ptr); 3138 3124 3139 This will return the number of passes needed. Currently, this 3140 is seven,but may change if another interlace type is added.3125 This will return the number of passes needed. Currently, this is seven, 3126 but may change if another interlace type is added. 3141 3127 3142 3128 Then write the complete image number_of_passes times. … … 3145 3131 number_of_rows); 3146 3132 3147 As some of these rows are not used, and thus return immediately, 3148 you may want to read about interlacing in the PNG specification, 3149 and only updatethe rows that are actually used.3133 As some of these rows are not used, and thus return immediately, you may 3134 want to read about interlacing in the PNG specification, and only update 3135 the rows that are actually used. 3150 3136 3151 3137 .SS Finishing a sequential write … … 3180 3166 This function may be safely called when the relevant storage has 3181 3167 already been freed, or has not yet been allocated, or was allocated 3182 by the user and not by libpng, and will in those 3183 cases do nothing. The "seq" parameter is ignored if only one item 3184 of the selected data type, such as PLTE, is allowed. If "seq" is not 3185 -1, and multiple items are allowed for the data type identified in 3186 the mask, such as text or sPLT, only the n'th item in the structure 3187 is freed, where n is "seq". 3188 3189 If you allocated data such as a palette that you passed 3190 in to libpng with png_set_*, you must not free it until just before the call to 3168 by the user and not by libpng, and will in those cases do nothing. 3169 The "seq" parameter is ignored if only one item of the selected data 3170 type, such as PLTE, is allowed. If "seq" is not -1, and multiple items 3171 are allowed for the data type identified in the mask, such as text or 3172 sPLT, only the n'th item in the structure is freed, where n is "seq". 3173 3174 If you allocated data such as a palette that you passed in to libpng 3175 with png_set_*, you must not free it until just before the call to 3191 3176 png_destroy_write_struct(). 3192 3177 … … 3254 3239 these functions, call the appropriate png_set_*_fn() function. 3255 3240 3256 Memory allocation is done through the functions png_malloc() 3257 and png_free(). These currently just call the standard C functions. If 3258 your pointers can't access more then 64K at a time, you will want to set 3259 MAXSEG_64K in zlib.h. Since it is unlikely that the method of handling 3260 memory allocation on a platform will change between applications, these 3261 functions must be modified in the library at compile time. If you prefer 3262 to use a different method of allocating and freeing data, you can use 3263 png_create_read_struct_2() or png_create_write_struct_2() to register 3264 your own functions as described above. 3265 These functions also provide a void pointer that can be retrieved via 3241 Memory allocation is done through the functions png_malloc(), png_calloc(), 3242 and png_free(). These currently just call the standard C functions. 3243 png_calloc() calls png_malloc() and then png_memset() to clear the newly 3244 allocated memory to zero. If your pointers can't access more then 64K 3245 at a time, you will want to set MAXSEG_64K in zlib.h. Since it is 3246 unlikely that the method of handling memory allocation on a platform 3247 will change between applications, these functions must be modified in 3248 the library at compile time. If you prefer to use a different method 3249 of allocating and freeing data, you can use png_create_read_struct_2() or 3250 png_create_write_struct_2() to register your own functions as described 3251 above. These functions also provide a void pointer that can be retrieved 3252 via 3266 3253 3267 3254 mem_ptr=png_get_mem_ptr(png_ptr); … … 3355 3342 as there is no need to check every return code of every function call. 3356 3343 However, there are some uncertainties about the status of local variables 3357 after a longjmp, so the user may want to be careful about doing anything after3358 setjmp returns non-zero besides returning itself. Consult your compiler3359 documentation for more details. For an alternative approach, you may wish 3360 to use the "cexcept" facility (see http://cexcept.sourceforge.net).3344 after a longjmp, so the user may want to be careful about doing anything 3345 after setjmp returns non-zero besides returning itself. Consult your 3346 compiler documentation for more details. For an alternative approach, you 3347 may wish to use the "cexcept" facility (see http://cexcept.sourceforge.net). 3361 3348 3362 3349 .SS Custom chunks … … 3370 3357 3371 3358 If you need to write a new intrinsic chunk, first read the PNG 3372 specification. Acquire a first level of 3373 understanding of how it works. Pay particular attention to the 3374 sections that describe chunk names, and look at how other chunks were 3375 designed, so you can do things similarly. Second, check out the 3376 sections of libpng that read and write chunks. Try to find a chunk 3377 that is similar to yours and use it as a template. More details can 3378 be found in the comments inside the code. It is best to handle unknown 3379 chunks in a generic method, via callback functions, instead of by 3380 modifying libpng functions. 3359 specification. Acquire a first level of understanding of how it works. 3360 Pay particular attention to the sections that describe chunk names, 3361 and look at how other chunks were designed, so you can do things 3362 similarly. Second, check out the sections of libpng that read and 3363 write chunks. Try to find a chunk that is similar to yours and use 3364 it as a template. More details can be found in the comments inside 3365 the code. It is best to handle unknown chunks in a generic method, 3366 via callback functions, instead of by modifying libpng functions. 3381 3367 3382 3368 If you wish to write your own transformation for the data, look through … … 3422 3408 All includes for libpng are in pngconf.h. If you need to add, change 3423 3409 or delete an include, this is the place to do it. 3424 The includes that are not needed outside libpng are p rotected by the3425 PNG_INTERNAL definition, which is only defined for those routines inside 3426 libpng itself. The files in libpng proper only includepng.h, which3427 in cludes pngconf.h.3410 The includes that are not needed outside libpng are placed in pngpriv.h, 3411 which is only used by the routines inside libpng itself. 3412 The files in libpng proper only include pngpriv.h and png.h, which 3413 in turn includes pngconf.h. 3428 3414 3429 3415 .SS Configuring zlib: … … 3555 3541 or all four, 3556 3542 along with directives to turn on any of the capabilities that you do 3557 want. The PNG_NO_READ[or WRITE]_TRANSFORMS directives disable 3558 t he extra transformations but still leave the library fully capable of reading3559 and writing PNG files with all known public chunks 3560 Use of the PNG_NO_READ[or WRITE]_ANCILLARY_CHUNKS directive 3561 produces a library that is incapable of reading or writing ancillary chunks. 3562 If you are not using the progressive reading capability, you can 3563 turn that off with PNG_NO_PROGRESSIVE_READ (don't confuse 3564 this with the INTERLACINGcapability, which you'll still have).3543 want. The PNG_NO_READ[or WRITE]_TRANSFORMS directives disable the extra 3544 transformations but still leave the library fully capable of reading 3545 and writing PNG files with all known public chunks. Use of the 3546 PNG_NO_READ[or WRITE]_ANCILLARY_CHUNKS directive produces a library 3547 that is incapable of reading or writing ancillary chunks. If you are 3548 not using the progressive reading capability, you can turn that off 3549 with PNG_NO_PROGRESSIVE_READ (don't confuse this with the INTERLACING 3550 capability, which you'll still have). 3565 3551 3566 3552 All the reading and writing specific code are in separate files, so the … … 3696 3682 png_create_write_struct_2(), png_set_mem_fn(), png_get_mem_ptr(), 3697 3683 png_malloc_default(), and png_free_default() were added. 3684 3685 Support for the iTXt chunk has been enabled by default as of 3686 version 1.2.41. 3698 3687 3699 3688 Support for certain MNG features was enabled. … … 3751 3740 when the Intel assembler code was removed due to a licensing issue. 3752 3741 3753 .SH IX. (Omitted) 3742 These macros are deprecated: 3743 3744 PNG_READ_TRANSFORMS_NOT_SUPPORTED 3745 PNG_PROGRESSIVE_READ_NOT_SUPPORTED 3746 PNG_NO_SEQUENTIAL_READ_SUPPORTED 3747 PNG_WRITE_TRANSFORMS_NOT_SUPPORTED 3748 PNG_READ_ANCILLARY_CHUNKS_NOT_SUPPORTED 3749 PNG_WRITE_ANCILLARY_CHUNKS_NOT_SUPPORTED 3750 3751 They have been replaced, respectively, by: 3752 3753 PNG_NO_READ_TRANSFORMS 3754 PNG_NO_PROGRESSIVE_READ 3755 PNG_NO_SEQUENTIAL_READ 3756 PNG_NO_WRITE_TRANSFORMS 3757 PNG_NO_READ_ANCILLARY_CHUNKS 3758 PNG_NO_WRITE_ANCILLARY_CHUNKS 3759 3760 PNG_MAX_UINT was replaced with PNG_UINT_31_MAX. It has been 3761 deprecated since libpng-1.0.16 and libpng-1.2.6. 3762 3763 The function 3764 png_check_sig(sig, num) 3765 was replaced with 3766 !png_sig_cmp(sig, 0, num) 3767 It has been deprecated since libpng-0.90. 3768 3769 The function 3770 png_set_gray_1_2_4_to_8() 3771 which also expands tRNS to alpha was replaced with 3772 png_set_expand_gray_1_2_4_to_8() 3773 which does not. It has been deprecated since libpng-1.0.18 and 1.2.9. 3774 3775 .SH IX. Changes to Libpng from version 1.0.x/1.2.x to 1.4.x 3776 3777 Private libpng prototypes and macro definitions were moved from 3778 png.h and pngconf.h into a new pngpriv.h header file. 3779 3780 Functions png_set_benign_errors(), png_benign_error(), and 3781 png_chunk_benign_error() were added. 3782 3783 Support for setting the maximum amount of memory that the application 3784 will allocate for reading chunks was added, as a security measure. 3785 The functions png_set_chunk_cache_max() and png_get_chunk_cache_max() 3786 were added to the library. 3787 3788 We implemented support for I/O states by adding png_ptr member io_state 3789 and functions png_get_io_chunk_name() and png_get_io_state() in pngget.c 3790 3791 We added PNG_TRANSFORM_GRAY_TO_RGB to the available high-level 3792 input transforms. 3793 3794 Checking for and reporting of errors in the IHDR chunk is more thorough. 3795 3796 Support for global arrays was removed, to improve thread safety. 3797 3798 Some obsolete/deprecated macros and functions have been removed. 3799 3800 Typecasted NULL definitions such as 3801 #define png_voidp_NULL (png_voidp)NULL 3802 were eliminated. If you used these in your application, just use 3803 NULL instead. 3804 3805 The png_struct and info_struct members "trans" and "trans_values" were 3806 changed to "trans_alpha" and "trans_color", respectively. 3807 3808 The obsolete, unused pnggccrd.c and pngvcrd.c files and related makefiles 3809 were removed. 3810 3811 The PNG_1_0_X and PNG_1_2_X macros were eliminated. 3812 3813 The PNG_LEGACY_SUPPORTED macro was eliminated. 3814 3815 Many WIN32_WCE #ifdefs were removed. 3816 3817 The functions png_read_init(info_ptr), png_write_init(info_ptr), 3818 png_info_init(info_ptr), png_read_destroy(), and png_write_destroy() 3819 have been removed. They have been deprecated since libpng-0.95. 3820 3821 The png_permit_empty_plte() was removed. It has been deprecated 3822 since libpng-1.0.9. Use png_permit_mng_features() instead. 3823 3824 We removed the obsolete stub functions png_get_mmx_flagmask(), 3825 png_set_mmx_thresholds(), png_get_asm_flags(), 3826 png_get_mmx_bitdepth_threshold(), png_get_mmx_rowbytes_threshold(), 3827 png_set_asm_flags(), and png_mmx_supported() 3828 3829 We removed the obsolete png_check_sig(), png_memcpy_check(), and 3830 png_memset_check() functions. Instead use !png_sig_cmp(), png_memcpy(), 3831 and png_memset(), respectively. 3832 3833 The function png_set_gray_1_2_4_to_8() was removed. It has been 3834 deprecated since libpng-1.0.18 and 1.2.9, when it was replaced with 3835 png_set_expand_gray_1_2_4_to_8() because the former function also 3836 expanded palette images. 3837 3838 We changed the prototype for png_malloc() from 3839 png_malloc(png_structp png_ptr, png_uint_32 size) 3840 to 3841 png_malloc(png_structp png_ptr, png_alloc_size_t size) 3842 3843 The png_calloc() function was added and is used in place of 3844 of "png_malloc(); png_memset();" except in the case in png_read_png() 3845 where the array consists of pointers; in this case a "for" loop is used 3846 after the png_malloc() to set the pointers to NULL, to give robust. 3847 behavior in case the application runs out of memory part-way through 3848 the process. 3849 3850 We changed the prototypes of png_get_compression_buffer_size() and 3851 png_set_compression_buffer_size() to work with png_size_t instead of 3852 png_uint_32. 3853 3854 Support for numbered error messages was removed by default, since we 3855 never got around to actually numbering the error messages. The function 3856 png_set_strip_error_numbers() was removed from the library by default. 3857 3858 The png_zalloc() and png_zfree() functions are no longer exported. 3859 The png_zalloc() function no longer zeroes out the memory that it 3860 allocates. 3861 3862 We removed the trailing '.' from the warning and error messages. 3754 3863 3755 3864 .SH X. Detecting libpng … … 3804 3913 are usually indented the same as the first line of the statement 3805 3914 plus four more spaces. 3915 3916 For macro definitions we use 2-space indentation, always leaving the "#" 3917 in the first column. 3918 3919 #ifndef PNG_NO_FEATURE 3920 # ifndef PNG_FEATURE_SUPPORTED 3921 # define PNG_FEATURE_SUPPORTED 3922 # endif 3923 #endif 3806 3924 3807 3925 Comments appear with the leading "/*" at the same indentation as … … 3852 3970 The prototypes for non-exported functions (except for those in 3853 3971 pngtest) appear in 3854 the PNG_INTERNAL section of png.h3972 pngpriv.h 3855 3973 above the comment that says 3856 3974 … … 3869 3987 3870 3988 for (i = 2; i > 0; --i) 3871 x[i] = a(x) + (int)b;3989 y[i] = a(x) + (int)b; 3872 3990 3873 3991 We prefer #ifdef and #ifndef to #if defined() and if !defined() 3874 3992 when there is only one macro being tested. 3875 3993 3876 Other rules can be inferred by inspecting the libpng 3877 source. 3994 We do not use the TAB character for indentation in the C sources. 3995 3996 Lines do not exceed 80 characters. 3997 3998 Other rules can be inferred by inspecting the libpng source. 3878 3999 3879 4000 .SH XIII. Y2K Compliance in libpng 3880 4001 3881 September 10, 2009 4002 January 3, 2010 3882 4003 3883 4004 Since the PNG Development group is an ad-hoc body, we can't make … … 3885 4006 3886 4007 This is your unofficial assurance that libpng from version 0.71 and 3887 upward through 1. 2.40 are Y2K compliant. It is my belief that earlier4008 upward through 1.4.0 are Y2K compliant. It is my belief that earlier 3888 4009 versions were also Y2K compliant. 3889 4010 … … 4029 4150 1.2.6 13 10206 12.so.0.1.2.6 4030 4151 1.2.7beta1-2 13 10207 12.so.0.1.2.7beta1-2 4031 1.0.17rc1 10 10017 1 0.so.0.1.0.17rc14152 1.0.17rc1 10 10017 12.so.0.1.0.17rc1 4032 4153 1.2.7rc1 13 10207 12.so.0.1.2.7rc1 4033 1.0.17 10 10017 1 0.so.0.1.0.174154 1.0.17 10 10017 12.so.0.1.0.17 4034 4155 1.2.7 13 10207 12.so.0.1.2.7 4035 4156 1.2.8beta1-5 13 10208 12.so.0.1.2.8beta1-5 4036 1.0.18rc1-5 10 10018 1 0.so.0.1.0.18rc1-54157 1.0.18rc1-5 10 10018 12.so.0.1.0.18rc1-5 4037 4158 1.2.8rc1-5 13 10208 12.so.0.1.2.8rc1-5 4038 1.0.18 10 10018 1 0.so.0.1.0.184159 1.0.18 10 10018 12.so.0.1.0.18 4039 4160 1.2.8 13 10208 12.so.0.1.2.8 4040 4161 1.2.9beta1-3 13 10209 12.so.0.1.2.9beta1-3 … … 4042 4163 1.2.9rc1 13 10209 12.so.0.9[.0] 4043 4164 1.2.9 13 10209 12.so.0.9[.0] 4044 1.2.10beta1- 813 10210 12.so.0.10[.0]4045 1.2.10rc1- 313 10210 12.so.0.10[.0]4165 1.2.10beta1-7 13 10210 12.so.0.10[.0] 4166 1.2.10rc1-2 13 10210 12.so.0.10[.0] 4046 4167 1.2.10 13 10210 12.so.0.10[.0] 4047 1.2.11beta1-4 13 10211 12.so.0.11[.0] 4048 1.0.19rc1-5 10 10019 10.so.0.19[.0] 4049 1.2.11rc1-5 13 10211 12.so.0.11[.0] 4050 1.0.19 10 10019 10.so.0.19[.0] 4168 1.4.0beta1-6 14 10400 14.so.0.0[.0] 4169 1.2.11beta1-4 13 10210 12.so.0.11[.0] 4170 1.4.0beta7-8 14 10400 14.so.0.0[.0] 4051 4171 1.2.11 13 10211 12.so.0.11[.0] 4052 1.0.20 10 10020 10.so.0.20[.0]4053 4172 1.2.12 13 10212 12.so.0.12[.0] 4054 1.2.13beta1 13 10213 12.so.0.13[.0] 4055 1.0.21 10 10021 10.so.0.21[.0] 4173 1.4.0beta9-14 14 10400 14.so.0.0[.0] 4056 4174 1.2.13 13 10213 12.so.0.13[.0] 4057 1.2.14beta1-2 13 10214 12.so.0.14[.0] 4058 1.0.22rc1 10 10022 10.so.0.22[.0] 4059 1.2.14rc1 13 10214 12.so.0.14[.0] 4060 1.2.15beta1-6 13 10215 12.so.0.15[.0] 4061 1.0.23rc1-5 10 10023 10.so.0.23[.0] 4062 1.2.15rc1-5 13 10215 12.so.0.15[.0] 4063 1.0.23 10 10023 10.so.0.23[.0] 4064 1.2.15 13 10215 12.so.0.15[.0] 4065 1.2.16beta1-2 13 10216 12.so.0.16[.0] 4066 1.2.16rc1 13 10216 12.so.0.16[.0] 4067 1.0.24 10 10024 10.so.0.24[.0] 4068 1.2.16 13 10216 12.so.0.16[.0] 4069 1.2.17beta1-2 13 10217 12.so.0.17[.0] 4070 1.0.25rc1 10 10025 10.so.0.25[.0] 4071 1.2.17rc1-3 13 10217 12.so.0.17[.0] 4072 1.0.25 10 10025 10.so.0.25[.0] 4073 1.2.17 13 10217 12.so.0.17[.0] 4074 1.0.26 10 10026 10.so.0.26[.0] 4075 1.2.18 13 10218 12.so.0.18[.0] 4076 1.2.19beta1-31 13 10219 12.so.0.19[.0] 4077 1.0.27rc1-6 10 10027 10.so.0.27[.0] 4078 1.2.19rc1-6 13 10219 12.so.0.19[.0] 4079 1.0.27 10 10027 10.so.0.27[.0] 4080 1.2.19 13 10219 12.so.0.19[.0] 4081 1.2.20beta01-04 13 10220 12.so.0.20[.0] 4082 1.0.28rc1-6 10 10028 10.so.0.28[.0] 4083 1.2.20rc1-6 13 10220 12.so.0.20[.0] 4084 1.0.28 10 10028 10.so.0.28[.0] 4085 1.2.20 13 10220 12.so.0.20[.0] 4086 1.2.21beta1-2 13 10221 12.so.0.21[.0] 4087 1.2.21rc1-3 13 10221 12.so.0.21[.0] 4088 1.0.29 10 10029 10.so.0.29[.0] 4089 1.2.21 13 10221 12.so.0.21[.0] 4090 1.2.22beta1-4 13 10222 12.so.0.22[.0] 4091 1.0.30rc1 13 10030 10.so.0.30[.0] 4092 1.2.22rc1 13 10222 12.so.0.22[.0] 4093 1.0.30 10 10030 10.so.0.30[.0] 4094 1.2.22 13 10222 12.so.0.22[.0] 4095 1.2.23beta01-05 13 10223 12.so.0.23[.0] 4096 1.2.23rc01 13 10223 12.so.0.23[.0] 4097 1.2.23 13 10223 12.so.0.23[.0] 4098 1.2.24beta01-02 13 10224 12.so.0.24[.0] 4099 1.2.24rc01 13 10224 12.so.0.24[.0] 4100 1.2.24 13 10224 12.so.0.24[.0] 4101 1.2.25beta01-06 13 10225 12.so.0.25[.0] 4102 1.2.25rc01-02 13 10225 12.so.0.25[.0] 4103 1.0.31 10 10031 10.so.0.31[.0] 4104 1.2.25 13 10225 12.so.0.25[.0] 4105 1.2.26beta01-06 13 10226 12.so.0.26[.0] 4106 1.2.26rc01 13 10226 12.so.0.26[.0] 4107 1.2.26 13 10226 12.so.0.26[.0] 4108 1.0.32 10 10032 10.so.0.32[.0] 4109 1.2.27beta01-06 13 10227 12.so.0.27[.0] 4110 1.2.27rc01 13 10227 12.so.0.27[.0] 4111 1.0.33 10 10033 10.so.0.33[.0] 4112 1.2.27 13 10227 12.so.0.27[.0] 4113 1.0.34 10 10034 10.so.0.34[.0] 4114 1.2.28 13 10228 12.so.0.28[.0] 4115 1.2.29beta01-03 13 10229 12.so.0.29[.0] 4116 1.2.29rc01 13 10229 12.so.0.29[.0] 4117 1.0.35 10 10035 10.so.0.35[.0] 4118 1.2.29 13 10229 12.so.0.29[.0] 4119 1.0.37 10 10037 10.so.0.37[.0] 4120 1.2.30beta01-04 13 10230 12.so.0.30[.0] 4121 1.0.38rc01-08 10 10038 10.so.0.38[.0] 4122 1.2.30rc01-08 13 10230 12.so.0.30[.0] 4123 1.0.38 10 10038 10.so.0.38[.0] 4124 1.2.30 13 10230 12.so.0.30[.0] 4125 1.0.39rc01-03 10 10039 10.so.0.39[.0] 4126 1.2.31rc01-03 13 10231 12.so.0.31[.0] 4127 1.0.39 10 10039 10.so.0.39[.0] 4128 1.2.31 13 10231 12.so.0.31[.0] 4129 1.2.32beta01-02 13 10232 12.so.0.32[.0] 4130 1.0.40rc01 10 10040 10.so.0.40[.0] 4131 1.2.32rc01 13 10232 12.so.0.32[.0] 4132 1.0.40 10 10040 10.so.0.40[.0] 4133 1.2.32 13 10232 12.so.0.32[.0] 4134 1.2.33beta01-02 13 10233 12.so.0.33[.0] 4135 1.2.33rc01-02 13 10233 12.so.0.33[.0] 4136 1.0.41rc01 10 10041 10.so.0.41[.0] 4137 1.2.33 13 10233 12.so.0.33[.0] 4138 1.0.41 10 10041 10.so.0.41[.0] 4139 1.2.34beta01-07 13 10234 12.so.0.34[.0] 4140 1.0.42rc01 10 10042 10.so.0.42[.0] 4141 1.2.34rc01 13 10234 12.so.0.34[.0] 4142 1.0.42 10 10042 10.so.0.42[.0] 4143 1.2.34 13 10234 12.so.0.34[.0] 4144 1.2.35beta01-03 13 10235 12.so.0.35[.0] 4145 1.0.43rc01-02 10 10043 10.so.0.43[.0] 4146 1.2.35rc01-02 13 10235 12.so.0.35[.0] 4147 1.0.43 10 10043 10.so.0.43[.0] 4148 1.2.35 13 10235 12.so.0.35[.0] 4149 1.2.36beta01-05 13 10236 12.so.0.36[.0] 4150 1.2.36rc01 13 10236 12.so.0.36[.0] 4151 1.0.44 10 10044 10.so.0.44[.0] 4152 1.2.36 13 10236 12.so.0.36[.0] 4153 1.2.37beta01-03 13 10237 12.so.0.37[.0] 4154 1.2.37rc01 13 10237 12.so.0.37[.0] 4155 1.2.37 13 10237 12.so.0.37[.0] 4156 1.2.45 10 10045 12.so.0.45[.0] 4157 1.0.46 10 10046 10.so.0.46[.0] 4158 1.2.38beta01 13 10238 12.so.0.38[.0] 4159 1.2.38rc01-03 13 10238 12.so.0.38[.0] 4160 1.0.47 10 10047 10.so.0.47[.0] 4161 1.2.38 13 10238 12.so.0.38[.0] 4162 1.2.39beta01-05 13 10239 12.so.0.39[.0] 4163 1.2.39rc01 13 10239 12.so.0.39[.0] 4164 1.0.48 10 10048 10.so.0.48[.0] 4165 1.2.39 13 10239 12.so.0.39[.0] 4166 1.2.40rc01 13 10240 12.so.0.40[.0] 4167 1.0.49 10 10049 10.so.0.49[.0] 4168 1.2.40 13 10240 12.so.0.40[.0] 4175 1.4.0beta15-36 14 10400 14.so.0.0[.0] 4176 1.4.0beta37-87 14 10400 14.so.14.0[.0] 4177 1.4.0rc01 14 10400 14.so.14.0[.0] 4178 1.4.0beta88-109 14 10400 14.so.14.0[.0] 4179 1.4.0rc02-08 14 10400 14.so.14.0[.0] 4180 1.4.0 14 10400 14.so.14.0[.0] 4169 4181 4170 4182 Henceforth the source version will match the shared-library minor … … 4179 4191 4180 4192 .SH "SEE ALSO" 4181 .IR libpngpf(3) ", "png(5)4193 libpngpf(3), png(5) 4182 4194 .LP 4183 4195 .IR libpng : … … 4202 4214 or at 4203 4215 .br 4204 ftp:// ftp.rfc-editor.org:/in-notes/rfc2083.txt4216 ftp://ds.internic.net/rfc/rfc2083.txt 4205 4217 .br 4206 4218 or (as a W3C Recommendation) at … … 4222 4234 Thanks to Frank J. T. Wojcik for helping with the documentation. 4223 4235 4224 Libpng version 1. 2.40 - September 10, 2009:4236 Libpng version 1.4.0 - January 3, 2010: 4225 4237 Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc. 4226 4238 Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net). … … 4245 4257 This code is released under the libpng license. 4246 4258 4247 libpng versions 1.2.6, August 15, 2004, through 1. 2.40, September 10, 2009, are4248 Copyright (c) 2004,2006-200 8Glenn Randers-Pehrson, and are4259 libpng versions 1.2.6, August 15, 2004, through 1.4.0, January 3, 2010, are 4260 Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are 4249 4261 distributed according to the same disclaimer and license as libpng-1.2.5 4250 4262 with the following individual added to the list of Contributing Authors … … 4344 4356 Glenn Randers-Pehrson 4345 4357 glennrp at users.sourceforge.net 4346 September 10, 2009 4358 January 3, 2010 4347 4359 4348 4360 .\" end of man page
Note:
See TracChangeset
for help on using the changeset viewer.