mirror of
				https://git.code.sf.net/p/libpng/code.git
				synced 2025-07-10 18:04:09 +02:00 
			
		
		
		
	[devel] Added png_set_chop_16() API.
This commit is contained in:
		
							parent
							
								
									74945f2f04
								
							
						
					
					
						commit
						413138a5ca
					
				
							
								
								
									
										20
									
								
								ANNOUNCE
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								ANNOUNCE
									
									
									
									
									
								
							@ -1,5 +1,5 @@
 | 
			
		||||
 | 
			
		||||
Libpng 1.5.4beta01 - June 14, 2011
 | 
			
		||||
Libpng 1.5.4beta02 - June 14, 2011
 | 
			
		||||
 | 
			
		||||
This is not intended to be a public release.  It will be replaced
 | 
			
		||||
within a few weeks by a public version or by another test version.
 | 
			
		||||
@ -9,20 +9,20 @@ Files available for download:
 | 
			
		||||
Source files with LF line endings (for Unix/Linux) and with a
 | 
			
		||||
"configure" script
 | 
			
		||||
 | 
			
		||||
   1.5.4beta01.tar.xz (LZMA-compressed, recommended)
 | 
			
		||||
   1.5.4beta01.tar.gz
 | 
			
		||||
   1.5.4beta01.tar.bz2
 | 
			
		||||
   1.5.4beta02.tar.xz (LZMA-compressed, recommended)
 | 
			
		||||
   1.5.4beta02.tar.gz
 | 
			
		||||
   1.5.4beta02.tar.bz2
 | 
			
		||||
 | 
			
		||||
Source files with CRLF line endings (for Windows), without the
 | 
			
		||||
"configure" script
 | 
			
		||||
 | 
			
		||||
   lp154b01.7z  (LZMA-compressed, recommended)
 | 
			
		||||
   lp154b01.zip
 | 
			
		||||
   lp154b02.7z  (LZMA-compressed, recommended)
 | 
			
		||||
   lp154b02.zip
 | 
			
		||||
 | 
			
		||||
Other information:
 | 
			
		||||
 | 
			
		||||
   1.5.4beta01-README.txt
 | 
			
		||||
   1.5.4beta01-LICENSE.txt
 | 
			
		||||
   1.5.4beta02-README.txt
 | 
			
		||||
   1.5.4beta02-LICENSE.txt
 | 
			
		||||
 | 
			
		||||
Changes since the last public release (1.5.2):
 | 
			
		||||
 | 
			
		||||
@ -193,6 +193,10 @@ Version 1.5.4beta01 [June 14, 2011]
 | 
			
		||||
    outside of an unknown-chunk block in png.h because they are also
 | 
			
		||||
    needed for other uses.
 | 
			
		||||
 | 
			
		||||
Version 1.5.4beta02 [June 14, 2011]
 | 
			
		||||
  Fixed and clarified LEGACY 16-to-8 scaling code.
 | 
			
		||||
  Added png_set_chop_16() API.
 | 
			
		||||
 | 
			
		||||
Send comments/corrections/commendations to png-mng-implement at lists.sf.net:
 | 
			
		||||
(subscription required; visit
 | 
			
		||||
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								CHANGES
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								CHANGES
									
									
									
									
									
								
							@ -3456,6 +3456,10 @@ Version 1.5.4beta01 [June 14, 2011]
 | 
			
		||||
    outside of an unknown-chunk block in png.h because they are also
 | 
			
		||||
    needed for other uses.
 | 
			
		||||
 | 
			
		||||
Version 1.5.4beta02 [June 14, 2011]
 | 
			
		||||
  Fixed and clarified LEGACY 16-to-8 scaling code.
 | 
			
		||||
  Added png_set_chop_16() API.
 | 
			
		||||
 | 
			
		||||
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 | 
			
		||||
(subscription required; visit
 | 
			
		||||
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
libpng-manual.txt - A description on how to use and modify libpng
 | 
			
		||||
 | 
			
		||||
 libpng version 1.5.4beta01 - June 14, 2011
 | 
			
		||||
 libpng version 1.5.4beta02 - June 14, 2011
 | 
			
		||||
 Updated and distributed by Glenn Randers-Pehrson
 | 
			
		||||
 <glennrp at users.sourceforge.net>
 | 
			
		||||
 Copyright (c) 1998-2011 Glenn Randers-Pehrson
 | 
			
		||||
@ -11,7 +11,7 @@ libpng-manual.txt - A description on how to use and modify libpng
 | 
			
		||||
 | 
			
		||||
 Based on:
 | 
			
		||||
 | 
			
		||||
 libpng versions 0.97, January 1998, through 1.5.4beta01 - June 14, 2011
 | 
			
		||||
 libpng versions 0.97, January 1998, through 1.5.4beta02 - June 14, 2011
 | 
			
		||||
 Updated and distributed by Glenn Randers-Pehrson
 | 
			
		||||
 Copyright (c) 1998-2011 Glenn Randers-Pehrson
 | 
			
		||||
 | 
			
		||||
@ -4423,7 +4423,7 @@ Since the PNG Development group is an ad-hoc body, we can't make
 | 
			
		||||
an official declaration.
 | 
			
		||||
 | 
			
		||||
This is your unofficial assurance that libpng from version 0.71 and
 | 
			
		||||
upward through 1.5.4beta01 are Y2K compliant.  It is my belief that earlier
 | 
			
		||||
upward through 1.5.4beta02 are Y2K compliant.  It is my belief that earlier
 | 
			
		||||
versions were also Y2K compliant.
 | 
			
		||||
 | 
			
		||||
Libpng only has three year fields.  One is a 2-byte unsigned integer that
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										21
									
								
								libpng.3
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								libpng.3
									
									
									
									
									
								
							@ -1,6 +1,6 @@
 | 
			
		||||
.TH LIBPNG 3 "June 14, 2011"
 | 
			
		||||
.SH NAME
 | 
			
		||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.5.4beta01
 | 
			
		||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.5.4beta02
 | 
			
		||||
.SH SYNOPSIS
 | 
			
		||||
\fI\fB
 | 
			
		||||
 | 
			
		||||
@ -672,6 +672,10 @@ libpng \- Portable Network Graphics (PNG) Reference Library 1.5.4beta01
 | 
			
		||||
 | 
			
		||||
\fI\fB
 | 
			
		||||
 | 
			
		||||
\fBvoid png_set_strip_16 (png_structp \fIpng_ptr\fP\fB);\fP
 | 
			
		||||
 | 
			
		||||
\fI\fB
 | 
			
		||||
 | 
			
		||||
\fBvoid png_set_chunk_malloc_max (png_structp \fP\fIpng_ptr\fP\fB, png_alloc_size_t \fIuser_chunk_cache_max\fP\fB);\fP
 | 
			
		||||
 | 
			
		||||
\fI\fB
 | 
			
		||||
@ -951,7 +955,7 @@ Following is a copy of the libpng-manual.txt file that accompanies libpng.
 | 
			
		||||
.SH LIBPNG.TXT
 | 
			
		||||
libpng-manual.txt - A description on how to use and modify libpng
 | 
			
		||||
 | 
			
		||||
 libpng version 1.5.4beta01 - June 14, 2011
 | 
			
		||||
 libpng version 1.5.4beta02 - June 14, 2011
 | 
			
		||||
 Updated and distributed by Glenn Randers-Pehrson
 | 
			
		||||
 <glennrp at users.sourceforge.net>
 | 
			
		||||
 Copyright (c) 1998-2011 Glenn Randers-Pehrson
 | 
			
		||||
@ -962,7 +966,7 @@ libpng-manual.txt - A description on how to use and modify libpng
 | 
			
		||||
 | 
			
		||||
 Based on:
 | 
			
		||||
 | 
			
		||||
 libpng versions 0.97, January 1998, through 1.5.4beta01 - June 14, 2011
 | 
			
		||||
 libpng versions 0.97, January 1998, through 1.5.4beta02 - June 14, 2011
 | 
			
		||||
 Updated and distributed by Glenn Randers-Pehrson
 | 
			
		||||
 Copyright (c) 1998-2011 Glenn Randers-Pehrson
 | 
			
		||||
 | 
			
		||||
@ -5374,7 +5378,7 @@ Since the PNG Development group is an ad-hoc body, we can't make
 | 
			
		||||
an official declaration.
 | 
			
		||||
 | 
			
		||||
This is your unofficial assurance that libpng from version 0.71 and
 | 
			
		||||
upward through 1.5.4beta01 are Y2K compliant.  It is my belief that earlier
 | 
			
		||||
upward through 1.5.4beta02 are Y2K compliant.  It is my belief that earlier
 | 
			
		||||
versions were also Y2K compliant.
 | 
			
		||||
 | 
			
		||||
Libpng only has three year fields.  One is a 2-byte unsigned integer that
 | 
			
		||||
@ -5565,8 +5569,9 @@ the first widely used release:
 | 
			
		||||
 1.5.2               15    10502  15.so.15.2[.0]
 | 
			
		||||
 1.5.3beta01-10      15    10503  15.so.15.3[.0]
 | 
			
		||||
 1.5.3rc01-02        15    10503  15.so.15.3[.0]
 | 
			
		||||
 1.5.3beta11 [no 1.5.3] 15 10503  15.so.15.3[.0]
 | 
			
		||||
 1.5.4beta01         15    10504  15.so.15.4[.0]
 | 
			
		||||
 1.5.3beta11         15    10503  15.so.15.3[.0]
 | 
			
		||||
 1.5.3 [omitted]
 | 
			
		||||
 1.5.4beta01-02      15    10504  15.so.15.4[.0]
 | 
			
		||||
 | 
			
		||||
Henceforth the source version will match the shared-library minor
 | 
			
		||||
and patch numbers; the shared-library major version number will be
 | 
			
		||||
@ -5623,7 +5628,7 @@ possible without all of you.
 | 
			
		||||
 | 
			
		||||
Thanks to Frank J. T. Wojcik for helping with the documentation.
 | 
			
		||||
 | 
			
		||||
Libpng version 1.5.4beta01 - June 14, 2011:
 | 
			
		||||
Libpng version 1.5.4beta02 - June 14, 2011:
 | 
			
		||||
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
 | 
			
		||||
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
 | 
			
		||||
 | 
			
		||||
@ -5646,7 +5651,7 @@ this sentence.
 | 
			
		||||
 | 
			
		||||
This code is released under the libpng license.
 | 
			
		||||
 | 
			
		||||
libpng versions 1.2.6, August 15, 2004, through 1.5.4beta01, June 14, 2011, are
 | 
			
		||||
libpng versions 1.2.6, August 15, 2004, through 1.5.4beta02, June 14, 2011, are
 | 
			
		||||
Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are
 | 
			
		||||
distributed according to the same disclaimer and license as libpng-1.2.5
 | 
			
		||||
with the following individual added to the list of Contributing Authors
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								png.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								png.c
									
									
									
									
									
								
							@ -1,7 +1,7 @@
 | 
			
		||||
 | 
			
		||||
/* png.c - location for general purpose libpng functions
 | 
			
		||||
 *
 | 
			
		||||
 * Last changed in libpng 1.5.3 [(PENDING RELEASE)]
 | 
			
		||||
 * Last changed in libpng 1.5.4 [(PENDING RELEASE)]
 | 
			
		||||
 * Copyright (c) 1998-2011 Glenn Randers-Pehrson
 | 
			
		||||
 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
 | 
			
		||||
 * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
 | 
			
		||||
@ -14,7 +14,7 @@
 | 
			
		||||
#include "pngpriv.h"
 | 
			
		||||
 | 
			
		||||
/* Generate a compiler error if there is an old png.h in the search path. */
 | 
			
		||||
typedef png_libpng_version_1_5_4beta01 Your_png_h_is_not_version_1_5_4beta01;
 | 
			
		||||
typedef png_libpng_version_1_5_4beta02 Your_png_h_is_not_version_1_5_4beta02;
 | 
			
		||||
 | 
			
		||||
/* Tells libpng that we have already handled the first "num_bytes" bytes
 | 
			
		||||
 * of the PNG file signature.  If the PNG data is embedded into another
 | 
			
		||||
@ -617,13 +617,13 @@ png_get_copyright(png_const_structp png_ptr)
 | 
			
		||||
#else
 | 
			
		||||
#  ifdef __STDC__
 | 
			
		||||
   return PNG_STRING_NEWLINE \
 | 
			
		||||
     "libpng version 1.5.4beta01 - June 14, 2011" PNG_STRING_NEWLINE \
 | 
			
		||||
     "libpng version 1.5.4beta02 - June 14, 2011" PNG_STRING_NEWLINE \
 | 
			
		||||
     "Copyright (c) 1998-2011 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \
 | 
			
		||||
     "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
 | 
			
		||||
     "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
 | 
			
		||||
     PNG_STRING_NEWLINE;
 | 
			
		||||
#  else
 | 
			
		||||
      return "libpng version 1.5.4beta01 - June 14, 2011\
 | 
			
		||||
      return "libpng version 1.5.4beta02 - June 14, 2011\
 | 
			
		||||
      Copyright (c) 1998-2011 Glenn Randers-Pehrson\
 | 
			
		||||
      Copyright (c) 1996-1997 Andreas Dilger\
 | 
			
		||||
      Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.";
 | 
			
		||||
@ -2369,7 +2369,7 @@ png_build_gamma_table(png_structp png_ptr, int bit_depth)
 | 
			
		||||
     else
 | 
			
		||||
        shift = 0; /* keep all 16 bits */
 | 
			
		||||
 | 
			
		||||
     if (png_ptr->transformations & PNG_16_TO_8)
 | 
			
		||||
     if (png_ptr->transformations & (PNG_16_TO_8 | PNG_CHOP_16_TO_8))
 | 
			
		||||
     {
 | 
			
		||||
        /* PNG_MAX_GAMMA_8 is the number of bits to keep - effectively
 | 
			
		||||
         * the significant bits in the *input* when the output will
 | 
			
		||||
@ -2390,7 +2390,7 @@ png_build_gamma_table(png_structp png_ptr, int bit_depth)
 | 
			
		||||
      * 16-bit output because the 8-bit table assumes the result will be reduced
 | 
			
		||||
      * to 8 bits.
 | 
			
		||||
      */
 | 
			
		||||
     if (png_ptr->transformations & PNG_16_TO_8)
 | 
			
		||||
     if (png_ptr->transformations & (PNG_16_TO_8 | PNG_CHOP_16_TO_8))
 | 
			
		||||
#endif
 | 
			
		||||
         png_build_16to8_table(png_ptr, &png_ptr->gamma_16_table, shift,
 | 
			
		||||
         png_ptr->screen_gamma > 0 ? png_product2(png_ptr->gamma,
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										27
									
								
								png.h
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								png.h
									
									
									
									
									
								
							@ -1,7 +1,7 @@
 | 
			
		||||
 | 
			
		||||
/* png.h - header file for PNG reference library
 | 
			
		||||
 *
 | 
			
		||||
 * libpng version 1.5.4beta01 - June 14, 2011
 | 
			
		||||
 * libpng version 1.5.4beta02 - June 14, 2011
 | 
			
		||||
 * Copyright (c) 1998-2011 Glenn Randers-Pehrson
 | 
			
		||||
 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
 | 
			
		||||
 * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
 | 
			
		||||
@ -11,7 +11,7 @@
 | 
			
		||||
 * Authors and maintainers:
 | 
			
		||||
 *   libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
 | 
			
		||||
 *   libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
 | 
			
		||||
 *   libpng versions 0.97, January 1998, through 1.5.4beta01 - June 14, 2011: Glenn
 | 
			
		||||
 *   libpng versions 0.97, January 1998, through 1.5.4beta02 - June 14, 2011: Glenn
 | 
			
		||||
 *   See also "Contributing Authors", below.
 | 
			
		||||
 *
 | 
			
		||||
 * Note about libpng version numbers:
 | 
			
		||||
@ -152,8 +152,9 @@
 | 
			
		||||
 *    1.5.2                   15    10502  15.so.15.2[.0]
 | 
			
		||||
 *    1.5.3beta01-10          15    10503  15.so.15.3[.0]
 | 
			
		||||
 *    1.5.3rc01-02            15    10503  15.so.15.3[.0]
 | 
			
		||||
 *    1.5.3beta11 [no 1.5.3]  15    10503  15.so.15.3[.0]
 | 
			
		||||
 *    1.5.4beta01             15    10504  15.so.15.4[.0]
 | 
			
		||||
 *    1.5.3beta11             15    10503  15.so.15.3[.0]
 | 
			
		||||
 *    1.5.3 [omitted]
 | 
			
		||||
 *    1.5.4beta01-02          15    10504  15.so.15.4[.0]
 | 
			
		||||
 *
 | 
			
		||||
 *   Henceforth the source version will match the shared-library major
 | 
			
		||||
 *   and minor numbers; the shared-library major version number will be
 | 
			
		||||
@ -185,7 +186,7 @@
 | 
			
		||||
 *
 | 
			
		||||
 * This code is released under the libpng license.
 | 
			
		||||
 *
 | 
			
		||||
 * libpng versions 1.2.6, August 15, 2004, through 1.5.4beta01, June 14, 2011, are
 | 
			
		||||
 * libpng versions 1.2.6, August 15, 2004, through 1.5.4beta02, June 14, 2011, are
 | 
			
		||||
 * Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are
 | 
			
		||||
 * distributed according to the same disclaimer and license as libpng-1.2.5
 | 
			
		||||
 * with the following individual added to the list of Contributing Authors:
 | 
			
		||||
@ -303,7 +304,7 @@
 | 
			
		||||
 *    an official declaration.
 | 
			
		||||
 *
 | 
			
		||||
 *    This is your unofficial assurance that libpng from version 0.71 and
 | 
			
		||||
 *    upward through 1.5.4beta01 are Y2K compliant.  It is my belief that
 | 
			
		||||
 *    upward through 1.5.4beta02 are Y2K compliant.  It is my belief that
 | 
			
		||||
 *    earlier versions were also Y2K compliant.
 | 
			
		||||
 *
 | 
			
		||||
 *    Libpng only has two year fields.  One is a 2-byte unsigned integer
 | 
			
		||||
@ -358,9 +359,9 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* Version information for png.h - this should match the version in png.c */
 | 
			
		||||
#define PNG_LIBPNG_VER_STRING "1.5.4beta01"
 | 
			
		||||
#define PNG_LIBPNG_VER_STRING "1.5.4beta02"
 | 
			
		||||
#define PNG_HEADER_VERSION_STRING \
 | 
			
		||||
     " libpng version 1.5.4beta01 - June 14, 2011\n"
 | 
			
		||||
     " libpng version 1.5.4beta02 - June 14, 2011\n"
 | 
			
		||||
 | 
			
		||||
#define PNG_LIBPNG_VER_SONUM   15
 | 
			
		||||
#define PNG_LIBPNG_VER_DLLNUM  15
 | 
			
		||||
@ -373,7 +374,7 @@
 | 
			
		||||
 * PNG_LIBPNG_VER_STRING, omitting any leading zero:
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#define PNG_LIBPNG_VER_BUILD  01
 | 
			
		||||
#define PNG_LIBPNG_VER_BUILD  02
 | 
			
		||||
 | 
			
		||||
/* Release Status */
 | 
			
		||||
#define PNG_LIBPNG_BUILD_ALPHA    1
 | 
			
		||||
@ -520,7 +521,7 @@ extern "C" {
 | 
			
		||||
/* This triggers a compiler error in png.c, if png.c and png.h
 | 
			
		||||
 * do not agree upon the version number.
 | 
			
		||||
 */
 | 
			
		||||
typedef char* png_libpng_version_1_5_4beta01;
 | 
			
		||||
typedef char* png_libpng_version_1_5_4beta02;
 | 
			
		||||
 | 
			
		||||
/* Three color definitions.  The order of the red, green, and blue, (and the
 | 
			
		||||
 * exact size) is not important, although the size of the fields need to
 | 
			
		||||
@ -1422,8 +1423,10 @@ PNG_FIXED_EXPORT(215, void, png_set_background_fixed, (png_structp png_ptr,
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef PNG_READ_16_TO_8_SUPPORTED
 | 
			
		||||
/* Strip the second byte of information from a 16-bit depth file. */
 | 
			
		||||
/* Scale a 16-bit depth file down to 8-bit, accurately. */
 | 
			
		||||
PNG_EXPORT(48, void, png_set_strip_16, (png_structp png_ptr));
 | 
			
		||||
/* Strip the second byte of information from a 16-bit depth file. */
 | 
			
		||||
PNG_EXPORT(229, void, png_set_chop_16, (png_structp png_ptr));
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef PNG_READ_QUANTIZE_SUPPORTED
 | 
			
		||||
@ -2566,7 +2569,7 @@ PNG_EXPORT(207, void, png_save_uint_16, (png_bytep buf, unsigned int i));
 | 
			
		||||
 * scripts/symbols.def as well.
 | 
			
		||||
 */
 | 
			
		||||
#ifdef PNG_EXPORT_LAST_ORDINAL
 | 
			
		||||
  PNG_EXPORT_LAST_ORDINAL(228);
 | 
			
		||||
  PNG_EXPORT_LAST_ORDINAL(229);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										68
									
								
								pngrtran.c
									
									
									
									
									
								
							
							
						
						
									
										68
									
								
								pngrtran.c
									
									
									
									
									
								
							@ -133,7 +133,7 @@ png_set_background(png_structp png_ptr,
 | 
			
		||||
#endif /* READ_BACKGROUND */
 | 
			
		||||
 | 
			
		||||
#ifdef PNG_READ_16_TO_8_SUPPORTED
 | 
			
		||||
/* Strip 16-bit depth files to 8-bit depth */
 | 
			
		||||
/* Scale 16-bit depth files to 8-bit depth */
 | 
			
		||||
void PNGAPI
 | 
			
		||||
png_set_strip_16(png_structp png_ptr)
 | 
			
		||||
{
 | 
			
		||||
@ -143,6 +143,20 @@ png_set_strip_16(png_structp png_ptr)
 | 
			
		||||
      return;
 | 
			
		||||
 | 
			
		||||
   png_ptr->transformations |= PNG_16_TO_8;
 | 
			
		||||
   png_ptr->transformations &= ~PNG_CHOP_16_TO_8;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Chop 16-bit depth files to 8-bit depth */
 | 
			
		||||
void PNGAPI
 | 
			
		||||
png_set_chop_16(png_structp png_ptr)
 | 
			
		||||
{
 | 
			
		||||
   png_debug(1, "in png_set_chop_16");
 | 
			
		||||
 | 
			
		||||
   if (png_ptr == NULL)
 | 
			
		||||
      return;
 | 
			
		||||
 | 
			
		||||
   png_ptr->transformations |= PNG_CHOP_16_TO_8;
 | 
			
		||||
   png_ptr->transformations &= ~PNG_16_TO_8;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@ -1312,7 +1326,7 @@ png_init_read_transformations(png_structp png_ptr)
 | 
			
		||||
    *  6) PNG_GAMMA
 | 
			
		||||
    *  7) PNG_STRIP_ALPHA (if compose)
 | 
			
		||||
    *  8) PNG_ENCODE_ALPHA
 | 
			
		||||
    *  9) PNG_16_TO_8 (strip16)
 | 
			
		||||
    *  9) PNG_16_TO_8 or PNG_CHOP_16_TO_8 (strip16/chop16)
 | 
			
		||||
    * 10) PNG_QUANTIZE (converts to palette)
 | 
			
		||||
    * 11) PNG_EXPAND_16
 | 
			
		||||
    * 12) PNG_GRAY_TO_RGB iff PNG_BACKGROUND_IS_GRAY
 | 
			
		||||
@ -1851,13 +1865,15 @@ png_read_transform_info(png_structp png_ptr, png_infop info_ptr)
 | 
			
		||||
 | 
			
		||||
#ifdef PNG_READ_16_TO_8_SUPPORTED
 | 
			
		||||
#ifdef PNG_READ_16BIT_SUPPORTED
 | 
			
		||||
   if ((png_ptr->transformations & PNG_16_TO_8) && (info_ptr->bit_depth == 16))
 | 
			
		||||
   if ((png_ptr->transformations & (PNG_16_TO_8 | PNG_CHOP_16_TO_8)) &&
 | 
			
		||||
       (info_ptr->bit_depth == 16))
 | 
			
		||||
      info_ptr->bit_depth = 8;
 | 
			
		||||
#else
 | 
			
		||||
   /* Force chopping 16-bit input down to 8 */
 | 
			
		||||
   if (info_ptr->bit_depth == 16)
 | 
			
		||||
   {
 | 
			
		||||
      png_ptr->transformations |=PNG_16_TO_8;
 | 
			
		||||
      if (!(png_ptr->transformations & PNG_CHOP_16_TO_8))
 | 
			
		||||
        png_ptr->transformations |=PNG_16_TO_8;
 | 
			
		||||
      info_ptr->bit_depth = 8;
 | 
			
		||||
   }
 | 
			
		||||
#endif
 | 
			
		||||
@ -2123,6 +2139,8 @@ png_do_read_transformations(png_structp png_ptr)
 | 
			
		||||
 | 
			
		||||
#ifdef PNG_READ_16_TO_8_SUPPORTED
 | 
			
		||||
   if (png_ptr->transformations & PNG_16_TO_8)
 | 
			
		||||
      png_do_scale_16_to_8(&(png_ptr->row_info), png_ptr->row_buf + 1);
 | 
			
		||||
   else if (png_ptr->transformations & PNG_CHOP_16_TO_8)
 | 
			
		||||
      png_do_chop(&(png_ptr->row_info), png_ptr->row_buf + 1);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@ -2453,11 +2471,11 @@ png_do_unshift(png_row_infop row_info, png_bytep row,
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef PNG_READ_16_TO_8_SUPPORTED
 | 
			
		||||
/* Chop rows of bit depth 16 down to 8 */
 | 
			
		||||
/* Scale rows of bit depth 16 down to 8 accurately */
 | 
			
		||||
void /* PRIVATE */
 | 
			
		||||
png_do_chop(png_row_infop row_info, png_bytep row)
 | 
			
		||||
png_do_scale_16_to_8(png_row_infop row_info, png_bytep row)
 | 
			
		||||
{
 | 
			
		||||
   png_debug(1, "in png_do_chop");
 | 
			
		||||
   png_debug(1, "in png_do_scale_16_to_8");
 | 
			
		||||
 | 
			
		||||
   if (row_info->bit_depth == 16)
 | 
			
		||||
   {
 | 
			
		||||
@ -2500,15 +2518,7 @@ png_do_chop(png_row_infop row_info, png_bytep row)
 | 
			
		||||
          */
 | 
			
		||||
 | 
			
		||||
         png_int_32 tmp = *sp++; /* must be signed! */
 | 
			
		||||
#ifdef PNG_LEGACY_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED
 | 
			
		||||
         tmp += (((int)*sp++ - tmp) > 128) ? 1 : 0;
 | 
			
		||||
#else
 | 
			
		||||
#  ifdef PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED
 | 
			
		||||
         tmp += (((int)*sp++ - tmp + 128) * 65535) >> 24;
 | 
			
		||||
#  else
 | 
			
		||||
         sp++;
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
         *dp++ = (png_byte)tmp;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -2517,7 +2527,33 @@ png_do_chop(png_row_infop row_info, png_bytep row)
 | 
			
		||||
      row_info->rowbytes = row_info->width * row_info->channels;
 | 
			
		||||
   }
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
void /* PRIVATE */
 | 
			
		||||
/* Simply discard the low byte.  This was the default behavior prior
 | 
			
		||||
 * to libpng-1.5.4.
 | 
			
		||||
 */
 | 
			
		||||
png_do_chop(png_row_infop row_info, png_bytep row)
 | 
			
		||||
{
 | 
			
		||||
   png_debug(1, "in png_do_chop");
 | 
			
		||||
 | 
			
		||||
   if (row_info->bit_depth == 16)
 | 
			
		||||
   {
 | 
			
		||||
      png_bytep sp = row; /* source */
 | 
			
		||||
      png_bytep dp = row; /* destinaton */
 | 
			
		||||
      png_bytep ep = sp + row_info->rowbytes; /* end+1 */
 | 
			
		||||
 | 
			
		||||
      while (sp < ep)
 | 
			
		||||
      {
 | 
			
		||||
         *dp++ = *sp++;
 | 
			
		||||
         sp++;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      row_info->bit_depth = 8;
 | 
			
		||||
      row_info->pixel_depth = (png_byte)(8 * row_info->channels);
 | 
			
		||||
      row_info->rowbytes = row_info->width * row_info->channels;
 | 
			
		||||
   }
 | 
			
		||||
}
 | 
			
		||||
#endif /* PNG_READ_16_TO_8_SUPPORTED */
 | 
			
		||||
 | 
			
		||||
#ifdef PNG_READ_SWAP_ALPHA_SUPPORTED
 | 
			
		||||
void /* PRIVATE */
 | 
			
		||||
 | 
			
		||||
@ -347,7 +347,6 @@ option INCH_CONVERSIONS
 | 
			
		||||
option BUILD_GRAYSCALE_PALETTE
 | 
			
		||||
 | 
			
		||||
option READ_16_TO_8_ACCURATE_SCALE requires READ
 | 
			
		||||
option LEGACY_READ_16_TO_8_ACCURATE_SCALE disabled
 | 
			
		||||
 | 
			
		||||
# IN DEVELOPMENT
 | 
			
		||||
# These are currently experimental features; define them if you want
 | 
			
		||||
 | 
			
		||||
@ -61,7 +61,6 @@
 | 
			
		||||
#define PNG_INFO_IMAGE_SUPPORTED
 | 
			
		||||
#define PNG_IO_STATE_SUPPORTED
 | 
			
		||||
#define PNG_iTXt_SUPPORTED
 | 
			
		||||
/*#undef PNG_LEGACY_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED*/
 | 
			
		||||
#define PNG_MNG_FEATURES_SUPPORTED
 | 
			
		||||
#define PNG_oFFs_SUPPORTED
 | 
			
		||||
#define PNG_pCAL_SUPPORTED
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user