Ignore:
Timestamp:
May 5, 2011, 5:36:53 AM (14 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.7.2 sources from branches/vendor/nokia/qt.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/src/3rdparty/libpng/libpng.3

    r561 r846  
    1 .TH LIBPNG 3 "September 10, 2009"
     1.TH LIBPNG 3 "January 3, 2010"
    22.SH NAME
    3 libpng \- Portable Network Graphics (PNG) Reference Library 1.2.40
     3libpng \- Portable Network Graphics (PNG) Reference Library 1.4.0
    44.SH SYNOPSIS
    55\fI\fB
     
    1313\fI\fB
    1414
    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
    1620
    1721\fI\fB
     
    5761\fI\fB
    5862
    59 \fBint png_debug(int \fP\fIlevel\fP\fB, png_const_charp \fImessage\fP\fB);\fP
    60 
    61 \fI\fB
    62 
    63 \fBint png_debug1(int \fP\fIlevel\fP\fB, png_const_charp \fP\fImessage\fP\fB, \fIp1\fP\fB);\fP
    64 
    65 \fI\fB
    66 
    67 \fBint png_debug2(int \fP\fIlevel\fP\fB, png_const_charp \fP\fImessage\fP\fB, \fP\fIp1\fP\fB, \fIp2\fP\fB);\fP
    68 
    69 \fI\fB
    70 
    7163\fBvoid png_destroy_info_struct (png_structp \fP\fIpng_ptr\fP\fB, png_infopp \fIinfo_ptr_ptr\fP\fB);\fP
    7264
     
    121113\fI\fB
    122114
     115\fBpng_uint_32 png_get_chunk_cache_max (png_structp \fIpng_ptr\fP\fB);\fP
     116
     117\fI\fB
     118
    123119\fBpng_byte png_get_color_type (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP
    124120
    125121\fI\fB
    126122
     123\fBpng_uint_32 png_get_compression_buffer_size (png_structp \fIpng_ptr\fP\fB);\fP
     124
     125\fI\fB
     126
    127127\fBpng_byte png_get_compression_type (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP
    128128
     
    177177\fI\fB
    178178
    179 \fB#if \fI!defined(PNG_1_0_X)
    180 
    181179\fBpng_int_32 png_get_int_32 (png_bytep \fIbuf\fP\fB);\fP
    182180
    183 \fI\fB#endif
    184 
    185181\fI\fB
    186182
     
    263259\fI\fB
    264260
    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);\fP
    266 
    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*/
    270266
    271267\fBpng_uint_16 png_get_uint_16 (png_bytep \fIbuf\fP\fB);\fP
     
    277273\fI\fB
    278274
     275\fB/* This function is really an inline macro. \fI*/
     276
    279277\fBpng_uint_32 png_get_uint_32 (png_bytep \fIbuf\fP\fB);\fP
    280278
    281 \fI\fB#endif
    282 
    283279\fI\fB
    284280
     
    331327\fI\fB
    332328
    333 \fBpng_uint_32 png_get_compression_buffer_size (png_structp \fIpng_ptr\fP\fB);\fP
    334 
    335 \fI\fB
    336 
    337329\fBint png_handle_as_unknown (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fIchunk_name\fP\fB);\fP
    338330
     
    343335\fI\fB
    344336
    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
    358342
    359343\fI\fB
     
    363347\fI\fB
    364348
    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);\fP
    366 
    367 \fI\fB
    368 
    369349\fBvoidp png_memset (png_voidp \fP\fIs1\fP\fB, int \fP\fIvalue\fP\fB, png_size_t \fIsize\fP\fB);\fP
    370350
    371351\fI\fB
    372352
    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);\fP
    374 
    375 \fI\fB
    376 
    377 \fBDEPRECATED: void png_permit_empty_plte (png_structp \fP\fIpng_ptr\fP\fB, int \fIempty_plte_permitted\fP\fB);\fP
    378 
    379 \fI\fB
    380 
    381353\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
    382354
     
    387359\fI\fB
    388360
    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);\fP
    390 
    391 \fI\fB
    392 
    393361\fBvoid png_read_end (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP
    394362
     
    399367\fI\fB
    400368
    401 \fBDEPRECATED: void png_read_init (png_structp \fIpng_ptr\fP\fB);\fP
    402 
    403 \fI\fB
    404 
    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);\fP
    406 
    407 \fI\fB
    408 
    409369\fBvoid png_read_info (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP
    410370
     
    427387\fI\fB
    428388
    429 \fB#if \fI!defined(PNG_1_0_X)
    430 
    431389\fBpng_save_int_32 (png_bytep \fP\fIbuf\fP\fB, png_int_32 \fIi\fP\fB);\fP
    432390
     
    443401\fBvoid png_set_add_alpha (png_structp \fP\fIpng_ptr\fP\fB, png_uint_32 \fP\fIfiller\fP\fB, int \fIflags\fP\fB);\fP
    444402
    445 \fI\fB#endif
    446 
    447403\fI\fB
    448404
     
    467423\fI\fB
    468424
     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
    469429\fBvoid png_set_compression_level (png_structp \fP\fIpng_ptr\fP\fB, int \fIlevel\fP\fB);\fP
    470430
     
    575535\fI\fB
    576536
     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
    577541\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
    578542
     
    687651\fI\fB
    688652
    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);\fP
     653\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
    690654
    691655\fI\fB
     
    759723\fI\fB
    760724
    761 \fBvoid png_write_destroy (png_structp \fIpng_ptr\fP\fB);\fP
    762 
    763 \fI\fB
    764 
    765725\fBvoid png_write_end (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP
    766726
     
    775735\fI\fB
    776736
    777 \fBDEPRECATED: void png_write_init (png_structp \fIpng_ptr\fP\fB);\fP
    778 
    779 \fI\fB
    780 
    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);\fP
    782 
    783 \fI\fB
    784 
    785737\fBvoid png_write_info (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP
    786738
     
    800752
    801753\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
    802758
    803759\fI\fB
     
    822778libpng.txt - A description on how to use and modify libpng
    823779
    824  libpng version 1.2.40 - September 10, 2009
     780 libpng version 1.4.0 - January 3, 2010
    825781 Updated and distributed by Glenn Randers-Pehrson
    826782 <glennrp at users.sourceforge.net>
     
    833789 Based on:
    834790
    835  libpng versions 0.97, January 1998, through 1.2.40 - September 10, 2009
     791 libpng versions 0.97, January 1998, through 1.4.0 - January 3, 2010
    836792 Updated and distributed by Glenn Randers-Pehrson
    837793 Copyright (c) 1998-2009 Glenn Randers-Pehrson
     
    862818
    863819For 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 the
    865 libpng distribution.
     820and the files in the "contrib" directory, all of which are included in
     821the libpng distribution.
    866822
    867823Libpng was written as a companion to the PNG specification, as a way
     
    12311187   width_max = png_get_user_width_max(png_ptr);
    12321188   height_max = png_get_user_height_max(png_ptr);
     1189
     1190The PNG specification sets no limit on the number of ancillary chunks
     1191allowed in a PNG datastream.  You can impose a limit on the total number
     1192of 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
     1196where 0x7fffffffL means unlimited.  You can retrieve this limit with
     1197
     1198   chunk_cache_max = png_get_chunk_cache_max(png_ptr);
     1199
     1200This limit also applies to the number of buffers that can be allocated
     1201by png_decompress_chunk() while decompressing iTXt, zTXt, and iCCP chunks.
    12331202
    12341203.SS The high-level read interface
     
    12591228                                to transparency
    12601229    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)
    12611232
    12621233(This excludes setting a background color, doing gamma transformation,
     
    12651236    png_read_png(png_ptr, info_ptr, png_transforms, NULL)
    12661237
    1267 where png_transforms is an integer containing the bitwise OR of
    1268 some set of transformation flags.  This call is equivalent to png_read_info(),
     1238where png_transforms is an integer containing the bitwise OR of some
     1239set of transformation flags.  This call is equivalent to png_read_info(),
    12691240followed the set of transformations indicated by the transform mask,
    12701241then png_read_image(), and finally png_read_end().
     
    13671338    interlace_type - (PNG_INTERLACE_NONE or
    13681339                     PNG_INTERLACE_ADAM7)
    1369     Any or all of interlace_type, compression_type, of
     1340
     1341    Any or all of interlace_type, compression_type, or
    13701342    filter_method can be NULL if you are
    13711343    not interested in their values.
    13721344
    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.
    13921351
    13931352    width            = png_get_image_width(png_ptr,
     
    14061365                         info_ptr);
    14071366
     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())).
    14081385
    14091386These are also important, but their validity depends on whether the chunk
     
    14111388png_get_<chunk>(png_ptr, info_ptr, ...) functions return non-zero if the
    14121389data 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 pointer
    1414 into the info_ptr is returned for any complex types.
     1390png_get_<chunk> are set directly if they are simple data types, or a
     1391pointer into the info_ptr is returned for any complex types.
    14151392
    14161393    png_get_PLTE(png_ptr, info_ptr, &palette,
     
    14501427                     given color type (png_color_16)
    14511428
    1452     png_get_tRNS(png_ptr, info_ptr, &trans, &num_trans,
    1453                      &trans_values);
    1454     trans          - array of transparent entries for
    1455                      palette (PNG_INFO_tRNS)
    1456     trans_values   - graylevel or color sample values of
     1429    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
    14571434                     the single transparent color for
    14581435                     non-paletted images (PNG_INFO_tRNS)
     
    14961473    text_ptr[i].lang_key  - keyword in UTF-8
    14971474                         (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
    14981479    num_text       - number of comments (same as
    14991480                     num_comments; you can put NULL here
     
    16751656added.  It expands the sample depth without changing tRNS to alpha.
    16761657
     1658As of libpng version 1.4.0, not all possible expansions are supported.
     1659
     1660In the following table, the 01 means grayscale with depth<8, 31 means
     1661indexed with depth<8, other numerals represent the color type, "T" means
     1662the tRNS chunk is present, A means an alpha channel is present, and O
     1663means 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
     1683Within 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
    16771695PNG can have files with 16 bits per channel.  If you only can handle
    167816968 bits per channel, this will strip the pixels down to 8 bit.
     
    17081726PNG files have possible bit depths of 1, 2, 4, 8, and 16.  All pixels
    17091727stored 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] to
    1711 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:
     1728higher possible bit depth (e.g. from 5 bits/sample in the range [0,31]
     1729to 8 bits/sample in the range [0, 255]).  However, it is also possible
     1730to convert the PNG pixel data back to the original bit depth of the
     1731image.  This call reduces the pixels back down to the original bit depth:
    17141732
    17151733    png_color_8p sig_bit;
     
    18981916      png_set_gamma(png_ptr, screen_gamma, 0.45455);
    18991917
    1900 If you need to reduce an RGB file to a paletted file, or if a paletted
    1901 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 merely
    1903 finds the closest color available.  This should work fairly well with
    1904 optimized palettes, and fairly badly with linear color cubes.  If you
    1905 pass a palette that is larger then maximum_colors, the file will
    1906 reduce the number of colors in the palette so it will fit into
    1907 maximum_colors.  If there is a histogram, it will use it to make
    1908 more intelligent choices when reducing the palette.  If there is no
    1909 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       else
    1924       {
    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 
    19341918PNG files describe monochrome as black being zero and white being one.
    19351919The following code will reverse this (make black be one and white be
     
    21582142This function may be safely called when the relevant storage has
    21592143already 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".
     2144by the user and not by libpng,  and will in those cases do nothing.
     2145The "seq" parameter is ignored if only one item of the selected data
     2146type, such as PLTE, is allowed.  If "seq" is not -1, and multiple items
     2147are allowed for the data type identified in the mask, such as text or
     2148sPLT, only the n'th item in the structure is freed, where n is "seq".
    21662149
    21672150The default behavior is only to free data that was allocated internally
     
    22022185
    22032186The 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 your
    2205 application instead of by libpng, you can use
     2187it frees.  If you need to turn the flag off for a chunk that was freed by
     2188your application instead of by libpng, you can use
    22062189
    22072190    png_set_invalid(png_ptr, info_ptr, mask);
     
    25132496a PNG datastream that is to be embedded in a MNG datastream).  The third
    25142497parameter 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 filter
    2516 types.
     2498for each scanline.  See the PNG specification for details on the specific
     2499filter types.
    25172500
    25182501
     
    26802663                     (png_color_16)
    26812664
    2682     png_set_tRNS(png_ptr, info_ptr, trans, num_trans,
    2683        trans_values);
    2684     trans          - array of transparent entries for
    2685                      palette (PNG_INFO_tRNS)
    2686     trans_values   - graylevel or color sample values
     2665    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
    26872670                     (in order red, green, blue) of the
    26882671                     single transparent color for
     
    27232706    text_ptr[i].translated_keyword  - keyword in UTF-8 (NULL
    27242707                         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
    27252712    num_text       - number of comments
    27262713
     
    29282915Note that there is one transformation you may need to do before
    29292916png_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, with
     2917level of opacity.  If your data is supplied as a level of transparency,
     2918you can invert the alpha channel before you write it, so that 0 is
     2919fully transparent and 255 (in 8-bit or paletted images) or 65535
     2920(in 16-bit images) is fully opaque, with
    29342921
    29352922    png_set_invert_alpha(png_ptr);
     
    31183105    png_write_row(png_ptr, row_pointer);
    31193106
    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.
     3107When the file is interlaced, things can get a good deal more complicated.
     3108The only currently (as of the PNG Specification version 1.2, dated July
     31091999) defined interlacing scheme for PNG files is the "Adam7" interlace
     3110scheme, that breaks down an image into seven smaller images of varying
     3111size.  libpng will build these images for you, or you can do them
     3112yourself.  If you want to build them yourself, see the PNG specification
     3113for details of which pixels to write when.
    31283114
    31293115If you don't want libpng to handle the interlacing details, just
     
    31373123       png_set_interlace_handling(png_ptr);
    31383124
    3139 This will return the number of passes needed.  Currently, this
    3140 is seven, but may change if another interlace type is added.
     3125This will return the number of passes needed.  Currently, this is seven,
     3126but may change if another interlace type is added.
    31413127
    31423128Then write the complete image number_of_passes times.
     
    31453131       number_of_rows);
    31463132
    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 update the rows that are actually used.
     3133As some of these rows are not used, and thus return immediately, you may
     3134want to read about interlacing in the PNG specification, and only update
     3135the rows that are actually used.
    31503136
    31513137.SS Finishing a sequential write
     
    31803166This function may be safely called when the relevant storage has
    31813167already 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
     3168by the user  and not by libpng,  and will in those cases do nothing.
     3169The "seq" parameter is ignored if only one item of the selected data
     3170type, such as PLTE, is allowed.  If "seq" is not -1, and multiple items
     3171are allowed for the data type identified in the mask, such as text or
     3172sPLT, only the n'th item in the structure is freed, where n is "seq".
     3173
     3174If you allocated data such as a palette that you passed in to libpng
     3175with png_set_*, you must not free it until just before the call to
    31913176png_destroy_write_struct().
    31923177
     
    32543239these functions, call the appropriate png_set_*_fn() function.
    32553240
    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
     3241Memory allocation is done through the functions png_malloc(), png_calloc(),
     3242and png_free().  These currently just call the standard C functions.
     3243png_calloc() calls png_malloc() and then png_memset() to clear the newly
     3244allocated memory to zero.  If your pointers can't access more then 64K
     3245at a time, you will want to set MAXSEG_64K in zlib.h.  Since it is
     3246unlikely that the method of handling memory allocation on a platform
     3247will change between applications, these functions must be modified in
     3248the library at compile time.  If you prefer to use a different method
     3249of allocating and freeing data, you can use png_create_read_struct_2() or
     3250png_create_write_struct_2() to register your own functions as described
     3251above.  These functions also provide a void pointer that can be retrieved
     3252via
    32663253
    32673254    mem_ptr=png_get_mem_ptr(png_ptr);
     
    33553342as there is no need to check every return code of every function call.
    33563343However, 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 after
    3358 setjmp returns non-zero besides returning itself.  Consult your compiler
    3359 documentation for more details.  For an alternative approach, you may wish
    3360 to use the "cexcept" facility (see http://cexcept.sourceforge.net).
     3344after a longjmp, so the user may want to be careful about doing anything
     3345after setjmp returns non-zero besides returning itself.  Consult your
     3346compiler documentation for more details.  For an alternative approach, you
     3347may wish to use the "cexcept" facility (see http://cexcept.sourceforge.net).
    33613348
    33623349.SS Custom chunks
     
    33703357
    33713358If 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.
     3359specification. Acquire a first level of understanding of how it works.
     3360Pay particular attention to the sections that describe chunk names,
     3361and look at how other chunks were designed, so you can do things
     3362similarly.  Second, check out the sections of libpng that read and
     3363write chunks.  Try to find a chunk that is similar to yours and use
     3364it as a template.  More details can be found in the comments inside
     3365the code.  It is best to handle unknown chunks in a generic method,
     3366via callback functions, instead of by modifying libpng functions.
    33813367
    33823368If you wish to write your own transformation for the data, look through
     
    34223408All includes for libpng are in pngconf.h.  If you need to add, change
    34233409or delete an include, this is the place to do it.
    3424 The includes that are not needed outside libpng are protected by the
    3425 PNG_INTERNAL definition, which is only defined for those routines inside
    3426 libpng itself.  The files in libpng proper only include png.h, which
    3427 includes pngconf.h.
     3410The includes that are not needed outside libpng are placed in pngpriv.h,
     3411which is only used by the routines inside libpng itself.
     3412The files in libpng proper only include pngpriv.h and png.h, which
     3413in turn includes pngconf.h.
    34283414
    34293415.SS Configuring zlib:
     
    35553541or all four,
    35563542along with directives to turn on any of the capabilities that you do
    3557 want.  The PNG_NO_READ[or WRITE]_TRANSFORMS directives disable
    3558 the extra transformations but still leave the library fully capable of reading
    3559 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 INTERLACING capability, which you'll still have).
     3543want.  The PNG_NO_READ[or WRITE]_TRANSFORMS directives disable the extra
     3544transformations but still leave the library fully capable of reading
     3545and writing PNG files with all known public chunks. Use of the
     3546PNG_NO_READ[or WRITE]_ANCILLARY_CHUNKS directive produces a library
     3547that is incapable of reading or writing ancillary chunks.  If you are
     3548not using the progressive reading capability, you can turn that off
     3549with PNG_NO_PROGRESSIVE_READ (don't confuse this with the INTERLACING
     3550capability, which you'll still have).
    35653551
    35663552All the reading and writing specific code are in separate files, so the
     
    36963682png_create_write_struct_2(), png_set_mem_fn(), png_get_mem_ptr(),
    36973683png_malloc_default(), and png_free_default() were added.
     3684
     3685Support for the iTXt chunk has been enabled by default as of
     3686version 1.2.41.
    36983687
    36993688Support for certain MNG features was enabled.
     
    37513740when the Intel assembler code was removed due to a licensing issue.
    37523741
    3753 .SH IX.  (Omitted)
     3742These 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
     3751They 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
     3760PNG_MAX_UINT was replaced with PNG_UINT_31_MAX.  It has been
     3761deprecated since libpng-1.0.16 and libpng-1.2.6.
     3762
     3763The function
     3764    png_check_sig(sig, num)
     3765was replaced with
     3766    !png_sig_cmp(sig, 0, num)
     3767It has been deprecated since libpng-0.90.
     3768
     3769The function
     3770    png_set_gray_1_2_4_to_8()
     3771which also expands tRNS to alpha was replaced with
     3772    png_set_expand_gray_1_2_4_to_8()
     3773which 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
     3777Private libpng prototypes and macro definitions were moved from
     3778png.h and pngconf.h into a new pngpriv.h header file.
     3779
     3780Functions png_set_benign_errors(), png_benign_error(), and
     3781png_chunk_benign_error() were added.
     3782
     3783Support for setting the maximum amount of memory that the application
     3784will allocate for reading chunks was added, as a security measure.
     3785The functions png_set_chunk_cache_max() and png_get_chunk_cache_max()
     3786were added to the library.
     3787
     3788We implemented support for I/O states by adding png_ptr member io_state
     3789and functions png_get_io_chunk_name() and png_get_io_state() in pngget.c
     3790
     3791We added PNG_TRANSFORM_GRAY_TO_RGB to the available high-level
     3792input transforms.
     3793
     3794Checking for and reporting of errors in the IHDR chunk is more thorough.
     3795
     3796Support for global arrays was removed, to improve thread safety.
     3797
     3798Some obsolete/deprecated macros and functions have been removed.
     3799
     3800Typecasted NULL definitions such as
     3801   #define png_voidp_NULL            (png_voidp)NULL
     3802were eliminated.  If you used these in your application, just use
     3803NULL instead.
     3804
     3805The png_struct and info_struct members "trans" and "trans_values" were
     3806changed to "trans_alpha" and "trans_color", respectively.
     3807
     3808The obsolete, unused pnggccrd.c and pngvcrd.c files and related makefiles
     3809were removed.
     3810
     3811The PNG_1_0_X and PNG_1_2_X macros were eliminated.
     3812
     3813The PNG_LEGACY_SUPPORTED macro was eliminated.
     3814
     3815Many WIN32_WCE #ifdefs were removed.
     3816
     3817The functions png_read_init(info_ptr), png_write_init(info_ptr),
     3818png_info_init(info_ptr), png_read_destroy(), and png_write_destroy()
     3819have been removed.  They have been deprecated since libpng-0.95.
     3820
     3821The png_permit_empty_plte() was removed. It has been deprecated
     3822since libpng-1.0.9.  Use png_permit_mng_features() instead.
     3823
     3824We removed the obsolete stub functions png_get_mmx_flagmask(),
     3825png_set_mmx_thresholds(), png_get_asm_flags(),
     3826png_get_mmx_bitdepth_threshold(), png_get_mmx_rowbytes_threshold(),
     3827png_set_asm_flags(), and png_mmx_supported()
     3828
     3829We removed the obsolete png_check_sig(), png_memcpy_check(), and
     3830png_memset_check() functions.  Instead use !png_sig_cmp(), png_memcpy(),
     3831and png_memset(), respectively.
     3832
     3833The function png_set_gray_1_2_4_to_8() was removed. It has been
     3834deprecated since libpng-1.0.18 and 1.2.9, when it was replaced with
     3835png_set_expand_gray_1_2_4_to_8() because the former function also
     3836expanded palette images.
     3837
     3838We changed the prototype for png_malloc() from
     3839    png_malloc(png_structp png_ptr, png_uint_32 size)
     3840to
     3841    png_malloc(png_structp png_ptr, png_alloc_size_t size)
     3842
     3843The png_calloc() function was added and is used in place of
     3844of "png_malloc(); png_memset();" except in the case in png_read_png()
     3845where the array consists of pointers; in this case a "for" loop is used
     3846after the png_malloc() to set the pointers to NULL, to give robust.
     3847behavior in case the application runs out of memory part-way through
     3848the process.
     3849
     3850We changed the prototypes of png_get_compression_buffer_size() and
     3851png_set_compression_buffer_size() to work with png_size_t instead of
     3852png_uint_32.
     3853
     3854Support for numbered error messages was removed by default, since we
     3855never got around to actually numbering the error messages. The function
     3856png_set_strip_error_numbers() was removed from the library by default.
     3857
     3858The png_zalloc() and png_zfree() functions are no longer exported.
     3859The png_zalloc() function no longer zeroes out the memory that it
     3860allocates.
     3861
     3862We removed the trailing '.' from the warning and error messages.
    37543863
    37553864.SH X. Detecting libpng
     
    38043913are usually indented the same as the first line of the statement
    38053914plus four more spaces.
     3915
     3916For macro definitions we use 2-space indentation, always leaving the "#"
     3917in the first column.
     3918
     3919    #ifndef PNG_NO_FEATURE
     3920    #  ifndef PNG_FEATURE_SUPPORTED
     3921    #    define PNG_FEATURE_SUPPORTED
     3922    #  endif
     3923    #endif
    38063924
    38073925Comments appear with the leading "/*" at the same indentation as
     
    38523970The prototypes for non-exported functions (except for those in
    38533971pngtest) appear in
    3854 the PNG_INTERNAL section of png.h
     3972pngpriv.h
    38553973above the comment that says
    38563974
     
    38693987
    38703988    for (i = 2; i > 0; --i)
    3871        x[i] = a(x) + (int)b;
     3989       y[i] = a(x) + (int)b;
    38723990
    38733991We prefer #ifdef and #ifndef to #if defined() and if !defined()
    38743992when there is only one macro being tested.
    38753993
    3876 Other rules can be inferred by inspecting the libpng
    3877 source.
     3994We do not use the TAB character for indentation in the C sources.
     3995
     3996Lines do not exceed 80 characters.
     3997
     3998Other rules can be inferred by inspecting the libpng source.
    38783999
    38794000.SH XIII. Y2K Compliance in libpng
    38804001
    3881 September 10, 2009
     4002January 3, 2010
    38824003
    38834004Since the PNG Development group is an ad-hoc body, we can't make
     
    38854006
    38864007This 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 earlier
     4008upward through 1.4.0 are Y2K compliant.  It is my belief that earlier
    38884009versions were also Y2K compliant.
    38894010
     
    40294150 1.2.6               13    10206  12.so.0.1.2.6
    40304151 1.2.7beta1-2        13    10207  12.so.0.1.2.7beta1-2
    4031  1.0.17rc1           10    10017  10.so.0.1.0.17rc1
     4152 1.0.17rc1           10    10017  12.so.0.1.0.17rc1
    40324153 1.2.7rc1            13    10207  12.so.0.1.2.7rc1
    4033  1.0.17              10    10017  10.so.0.1.0.17
     4154 1.0.17              10    10017  12.so.0.1.0.17
    40344155 1.2.7               13    10207  12.so.0.1.2.7
    40354156 1.2.8beta1-5        13    10208  12.so.0.1.2.8beta1-5
    4036  1.0.18rc1-5         10    10018  10.so.0.1.0.18rc1-5
     4157 1.0.18rc1-5         10    10018  12.so.0.1.0.18rc1-5
    40374158 1.2.8rc1-5          13    10208  12.so.0.1.2.8rc1-5
    4038  1.0.18              10    10018  10.so.0.1.0.18
     4159 1.0.18              10    10018  12.so.0.1.0.18
    40394160 1.2.8               13    10208  12.so.0.1.2.8
    40404161 1.2.9beta1-3        13    10209  12.so.0.1.2.9beta1-3
     
    40424163 1.2.9rc1            13    10209  12.so.0.9[.0]
    40434164 1.2.9               13    10209  12.so.0.9[.0]
    4044  1.2.10beta1-8       13    10210  12.so.0.10[.0]
    4045  1.2.10rc1-3         13    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]
    40464167 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]
    40514171 1.2.11              13    10211  12.so.0.11[.0]
    4052  1.0.20              10    10020  10.so.0.20[.0]
    40534172 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]
    40564174 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]
    41694181
    41704182Henceforth the source version will match the shared-library minor
     
    41794191
    41804192.SH "SEE ALSO"
    4181 .IR libpngpf(3) ", " png(5)
     4193libpngpf(3), png(5)
    41824194.LP
    41834195.IR libpng :
     
    42024214or at
    42034215.br
    4204 ftp://ftp.rfc-editor.org:/in-notes/rfc2083.txt
     4216ftp://ds.internic.net/rfc/rfc2083.txt
    42054217.br
    42064218or (as a W3C Recommendation) at
     
    42224234Thanks to Frank J. T. Wojcik for helping with the documentation.
    42234235
    4224 Libpng version 1.2.40 - September 10, 2009:
     4236Libpng version 1.4.0 - January 3, 2010:
    42254237Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
    42264238Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
     
    42454257This code is released under the libpng license.
    42464258
    4247 libpng versions 1.2.6, August 15, 2004, through 1.2.40, September 10, 2009, are
    4248 Copyright (c) 2004,2006-2008 Glenn Randers-Pehrson, and are
     4259libpng versions 1.2.6, August 15, 2004, through 1.4.0, January 3, 2010, are
     4260Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are
    42494261distributed according to the same disclaimer and license as libpng-1.2.5
    42504262with the following individual added to the list of Contributing Authors
     
    43444356Glenn Randers-Pehrson
    43454357glennrp at users.sourceforge.net
    4346 September 10, 2009
     4358January 3, 2010
    43474359
    43484360.\" end of man page
Note: See TracChangeset for help on using the changeset viewer.