mirror of
https://git.code.sf.net/p/libpng/code.git
synced 2025-07-10 18:04:09 +02:00
[libpng16] Changed 0xnnnn constants to 0xnnnnUL.
This commit is contained in:
parent
8b83ff3704
commit
8ba4b13c55
7
ANNOUNCE
7
ANNOUNCE
@ -1,4 +1,4 @@
|
|||||||
Libpng 1.6.19beta02 - August 14, 2015
|
Libpng 1.6.19beta02 - August 17, 2015
|
||||||
|
|
||||||
This is not intended to be a public release. It will be replaced
|
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.
|
within a few weeks by a public version or by another test version.
|
||||||
@ -40,14 +40,15 @@ Version 1.6.19beta01 [July 30, 2015]
|
|||||||
Fixed potential leak of png_pixels in contrib/pngminus/pnm2png.c
|
Fixed potential leak of png_pixels in contrib/pngminus/pnm2png.c
|
||||||
Fixed uninitialized variable in contrib/gregbook/rpng2-x.c
|
Fixed uninitialized variable in contrib/gregbook/rpng2-x.c
|
||||||
|
|
||||||
Version 1.6.19beta02 [August 14, 2015]
|
Version 1.6.19beta02 [August 17, 2015]
|
||||||
Moved config.h.in~ from the "libpng_autotools_files" list to the
|
Moved config.h.in~ from the "libpng_autotools_files" list to the
|
||||||
"libpng_autotools_extra" list in autogen.sh because it was causing a
|
"libpng_autotools_extra" list in autogen.sh because it was causing a
|
||||||
false positive for missing files (bug report by Robert C. Seacord).
|
false positive for missing files (bug report by Robert C. Seacord).
|
||||||
Removed unreachable "break" statements in png.c, pngread.c, and pngrtran.c
|
Removed unreachable "break" statements in png.c, pngread.c, and pngrtran.c
|
||||||
to suppress clang warnings (Bug report by Viktor Szakats).
|
to suppress clang warnings (Bug report by Viktor Szakats).
|
||||||
Fixed some bad links in the man page.
|
Fixed some bad links in the man page.
|
||||||
Change "n bit" to "n-bit" in comments.
|
Changed "n bit" to "n-bit" in comments.
|
||||||
|
Changed 0xnnnn constants to 0xnnnnUL.
|
||||||
|
|
||||||
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
||||||
(subscription required; visit
|
(subscription required; visit
|
||||||
|
5
CHANGES
5
CHANGES
@ -5319,14 +5319,15 @@ Version 1.6.19beta01 [July 30, 2015]
|
|||||||
Fixed potential leak of png_pixels in contrib/pngminus/pnm2png.c
|
Fixed potential leak of png_pixels in contrib/pngminus/pnm2png.c
|
||||||
Fixed uninitialized variable in contrib/gregbook/rpng2-x.c
|
Fixed uninitialized variable in contrib/gregbook/rpng2-x.c
|
||||||
|
|
||||||
Version 1.6.19beta02 [August 14, 2015]
|
Version 1.6.19beta02 [August 17, 2015]
|
||||||
Moved config.h.in~ from the "libpng_autotools_files" list to the
|
Moved config.h.in~ from the "libpng_autotools_files" list to the
|
||||||
"libpng_autotools_extra" list in autogen.sh because it was causing a
|
"libpng_autotools_extra" list in autogen.sh because it was causing a
|
||||||
false positive for missing files (bug report by Robert C. Seacord).
|
false positive for missing files (bug report by Robert C. Seacord).
|
||||||
Removed unreachable "break" statements in png.c, pngread.c, and pngrtran.c
|
Removed unreachable "break" statements in png.c, pngread.c, and pngrtran.c
|
||||||
to suppress clang warnings (Bug report by Viktor Szakats).
|
to suppress clang warnings (Bug report by Viktor Szakats).
|
||||||
Fixed some bad links in the man page.
|
Fixed some bad links in the man page.
|
||||||
Change "n bit" to "n-bit" in comments.
|
Changed "n bit" to "n-bit" in comments.
|
||||||
|
Changed 0xnnnn constants to 0xnnnnUL.
|
||||||
|
|
||||||
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
||||||
(subscription required; visit
|
(subscription required; visit
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
libpng-manual.txt - A description on how to use and modify libpng
|
libpng-manual.txt - A description on how to use and modify libpng
|
||||||
|
|
||||||
libpng version 1.6.19beta02 - August 11, 2015
|
libpng version 1.6.19beta02 - August 17, 2015
|
||||||
Updated and distributed by Glenn Randers-Pehrson
|
Updated and distributed by Glenn Randers-Pehrson
|
||||||
<glennrp at users.sourceforge.net>
|
<glennrp at users.sourceforge.net>
|
||||||
Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
||||||
@ -11,7 +11,7 @@ libpng-manual.txt - A description on how to use and modify libpng
|
|||||||
|
|
||||||
Based on:
|
Based on:
|
||||||
|
|
||||||
libpng versions 0.97, January 1998, through 1.6.19beta02 - August 11, 2015
|
libpng versions 0.97, January 1998, through 1.6.19beta02 - August 17, 2015
|
||||||
Updated and distributed by Glenn Randers-Pehrson
|
Updated and distributed by Glenn Randers-Pehrson
|
||||||
Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
||||||
|
|
||||||
@ -650,6 +650,7 @@ User limits
|
|||||||
|
|
||||||
The PNG specification allows the width and height of an image to be as
|
The PNG specification allows the width and height of an image to be as
|
||||||
large as 2^31-1 (0x7fffffff), or about 2.147 billion rows and columns.
|
large as 2^31-1 (0x7fffffff), or about 2.147 billion rows and columns.
|
||||||
|
For safety, libpng imposes a default limit of 1 million rows and columns.
|
||||||
Larger images will be rejected immediately with a png_error() call. If
|
Larger images will be rejected immediately with a png_error() call. If
|
||||||
you wish to change these limits, you can use
|
you wish to change these limits, you can use
|
||||||
|
|
||||||
@ -670,8 +671,11 @@ If you need to retrieve the limits that are being applied, use
|
|||||||
height_max = png_get_user_height_max(png_ptr);
|
height_max = png_get_user_height_max(png_ptr);
|
||||||
|
|
||||||
The PNG specification sets no limit on the number of ancillary chunks
|
The PNG specification sets no limit on the number of ancillary chunks
|
||||||
allowed in a PNG datastream. You can impose a limit on the total number
|
allowed in a PNG datastream. By default, libpng imposes a limit of
|
||||||
of sPLT, tEXt, iTXt, zTXt, and unknown chunks that will be stored, with
|
a total of 1000 sPLT, tEXt, iTXt, zTXt, and unknown chunks to be stored.
|
||||||
|
If you have set up both info_ptr and end_info_ptr, the limit applies
|
||||||
|
separately to each. You can change the limit on the total number of such
|
||||||
|
chunks that will be stored, with
|
||||||
|
|
||||||
png_set_chunk_cache_max(png_ptr, user_chunk_cache_max);
|
png_set_chunk_cache_max(png_ptr, user_chunk_cache_max);
|
||||||
|
|
||||||
@ -679,8 +683,9 @@ where 0x7fffffffL means unlimited. You can retrieve this limit with
|
|||||||
|
|
||||||
chunk_cache_max = png_get_chunk_cache_max(png_ptr);
|
chunk_cache_max = png_get_chunk_cache_max(png_ptr);
|
||||||
|
|
||||||
You can also set a limit on the amount of memory that a compressed chunk
|
Libpng imposes a limit of 8 Megabytes (8,000,000 bytes) on the amount of
|
||||||
other than IDAT can occupy, with
|
memory that a compressed chunk other than IDAT can occupy, when decompressed.
|
||||||
|
You can change this limit with
|
||||||
|
|
||||||
png_set_chunk_malloc_max(png_ptr, user_chunk_malloc_max);
|
png_set_chunk_malloc_max(png_ptr, user_chunk_malloc_max);
|
||||||
|
|
||||||
@ -5288,10 +5293,12 @@ We prefer #ifdef and #ifndef to #if defined() and #if !defined()
|
|||||||
when there is only one macro being tested. We always use parentheses
|
when there is only one macro being tested. We always use parentheses
|
||||||
with "defined".
|
with "defined".
|
||||||
|
|
||||||
We prefer to express integers that are used as bit masks in hex format,
|
We express integer constants that are used as bit masks in hex format,
|
||||||
with an even number of lower-case hex digits (e.g., 0x00, 0xff, 0x0100).
|
with an even number of lower-case hex digits, and to make them unsigned
|
||||||
|
(e.g., 0x00U, 0xffU, 0x0100U) and long if they are greater than 0x7fff
|
||||||
|
(e.g., 0xffffUL).
|
||||||
|
|
||||||
We prefer to use underscores in variable names rather than camelCase, except
|
We prefer to use underscores rather than camelCase in names, except
|
||||||
for a few type names that we inherit from zlib.h.
|
for a few type names that we inherit from zlib.h.
|
||||||
|
|
||||||
We prefer "if (something != 0)" and "if (something == 0)"
|
We prefer "if (something != 0)" and "if (something == 0)"
|
||||||
@ -5305,7 +5312,7 @@ Other rules can be inferred by inspecting the libpng source.
|
|||||||
|
|
||||||
XVI. Y2K Compliance in libpng
|
XVI. Y2K Compliance in libpng
|
||||||
|
|
||||||
August 11, 2015
|
August 17, 2015
|
||||||
|
|
||||||
Since the PNG Development group is an ad-hoc body, we can't make
|
Since the PNG Development group is an ad-hoc body, we can't make
|
||||||
an official declaration.
|
an official declaration.
|
||||||
|
35
libpng.3
35
libpng.3
@ -1,4 +1,4 @@
|
|||||||
.TH LIBPNG 3 "August 11, 2015"
|
.TH LIBPNG 3 "August 17, 2015"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.6.19beta02
|
libpng \- Portable Network Graphics (PNG) Reference Library 1.6.19beta02
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
@ -508,7 +508,7 @@ Following is a copy of the libpng-manual.txt file that accompanies libpng.
|
|||||||
.SH LIBPNG.TXT
|
.SH LIBPNG.TXT
|
||||||
libpng-manual.txt - A description on how to use and modify libpng
|
libpng-manual.txt - A description on how to use and modify libpng
|
||||||
|
|
||||||
libpng version 1.6.19beta02 - August 11, 2015
|
libpng version 1.6.19beta02 - August 17, 2015
|
||||||
Updated and distributed by Glenn Randers-Pehrson
|
Updated and distributed by Glenn Randers-Pehrson
|
||||||
<glennrp at users.sourceforge.net>
|
<glennrp at users.sourceforge.net>
|
||||||
Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
||||||
@ -519,7 +519,7 @@ libpng-manual.txt - A description on how to use and modify libpng
|
|||||||
|
|
||||||
Based on:
|
Based on:
|
||||||
|
|
||||||
libpng versions 0.97, January 1998, through 1.6.19beta02 - August 11, 2015
|
libpng versions 0.97, January 1998, through 1.6.19beta02 - August 17, 2015
|
||||||
Updated and distributed by Glenn Randers-Pehrson
|
Updated and distributed by Glenn Randers-Pehrson
|
||||||
Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
||||||
|
|
||||||
@ -1158,6 +1158,7 @@ callback function:
|
|||||||
|
|
||||||
The PNG specification allows the width and height of an image to be as
|
The PNG specification allows the width and height of an image to be as
|
||||||
large as 2^(31\-1 (0x7fffffff), or about 2.147 billion rows and columns.
|
large as 2^(31\-1 (0x7fffffff), or about 2.147 billion rows and columns.
|
||||||
|
For safety, libpng imposes a default limit of 1 million rows and columns.
|
||||||
Larger images will be rejected immediately with a png_error() call. If
|
Larger images will be rejected immediately with a png_error() call. If
|
||||||
you wish to change these limits, you can use
|
you wish to change these limits, you can use
|
||||||
|
|
||||||
@ -1178,8 +1179,11 @@ If you need to retrieve the limits that are being applied, use
|
|||||||
height_max = png_get_user_height_max(png_ptr);
|
height_max = png_get_user_height_max(png_ptr);
|
||||||
|
|
||||||
The PNG specification sets no limit on the number of ancillary chunks
|
The PNG specification sets no limit on the number of ancillary chunks
|
||||||
allowed in a PNG datastream. You can impose a limit on the total number
|
allowed in a PNG datastream. By default, libpng imposes a limit of
|
||||||
of sPLT, tEXt, iTXt, zTXt, and unknown chunks that will be stored, with
|
a total of 1000 sPLT, tEXt, iTXt, zTXt, and unknown chunks to be stored.
|
||||||
|
If you have set up both info_ptr and end_info_ptr, the limit applies
|
||||||
|
separately to each. You can change the limit on the total number of such
|
||||||
|
chunks that will be stored, with
|
||||||
|
|
||||||
png_set_chunk_cache_max(png_ptr, user_chunk_cache_max);
|
png_set_chunk_cache_max(png_ptr, user_chunk_cache_max);
|
||||||
|
|
||||||
@ -1187,8 +1191,9 @@ where 0x7fffffffL means unlimited. You can retrieve this limit with
|
|||||||
|
|
||||||
chunk_cache_max = png_get_chunk_cache_max(png_ptr);
|
chunk_cache_max = png_get_chunk_cache_max(png_ptr);
|
||||||
|
|
||||||
You can also set a limit on the amount of memory that a compressed chunk
|
Libpng imposes a limit of 8 Megabytes (8,000,000 bytes) on the amount of
|
||||||
other than IDAT can occupy, with
|
memory that a compressed chunk other than IDAT can occupy, when decompressed.
|
||||||
|
You can change this limit with
|
||||||
|
|
||||||
png_set_chunk_malloc_max(png_ptr, user_chunk_malloc_max);
|
png_set_chunk_malloc_max(png_ptr, user_chunk_malloc_max);
|
||||||
|
|
||||||
@ -5796,10 +5801,12 @@ We prefer #ifdef and #ifndef to #if defined() and #if !defined()
|
|||||||
when there is only one macro being tested. We always use parentheses
|
when there is only one macro being tested. We always use parentheses
|
||||||
with "defined".
|
with "defined".
|
||||||
|
|
||||||
We prefer to express integers that are used as bit masks in hex format,
|
We express integer constants that are used as bit masks in hex format,
|
||||||
with an even number of lower-case hex digits (e.g., 0x00, 0xff, 0x0100).
|
with an even number of lower-case hex digits, and to make them unsigned
|
||||||
|
(e.g., 0x00U, 0xffU, 0x0100U) and long if they are greater than 0x7fff
|
||||||
|
(e.g., 0xffffUL).
|
||||||
|
|
||||||
We prefer to use underscores in variable names rather than camelCase, except
|
We prefer to use underscores rather than camelCase in names, except
|
||||||
for a few type names that we inherit from zlib.h.
|
for a few type names that we inherit from zlib.h.
|
||||||
|
|
||||||
We prefer "if (something != 0)" and "if (something == 0)"
|
We prefer "if (something != 0)" and "if (something == 0)"
|
||||||
@ -5813,7 +5820,7 @@ Other rules can be inferred by inspecting the libpng source.
|
|||||||
|
|
||||||
.SH XVI. Y2K Compliance in libpng
|
.SH XVI. Y2K Compliance in libpng
|
||||||
|
|
||||||
August 11, 2015
|
August 17, 2015
|
||||||
|
|
||||||
Since the PNG Development group is an ad-hoc body, we can't make
|
Since the PNG Development group is an ad-hoc body, we can't make
|
||||||
an official declaration.
|
an official declaration.
|
||||||
@ -6134,7 +6141,7 @@ possible without all of you.
|
|||||||
|
|
||||||
Thanks to Frank J. T. Wojcik for helping with the documentation.
|
Thanks to Frank J. T. Wojcik for helping with the documentation.
|
||||||
|
|
||||||
Libpng version 1.6.19beta02 - August 11, 2015:
|
Libpng version 1.6.19beta02 - August 17, 2015:
|
||||||
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
|
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
|
||||||
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
|
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
|
||||||
|
|
||||||
@ -6157,7 +6164,7 @@ this sentence.
|
|||||||
|
|
||||||
This code is released under the libpng license.
|
This code is released under the libpng license.
|
||||||
|
|
||||||
libpng versions 1.0.7, July 1, 2000, through 1.6.19beta02, August 11, 2015, are
|
libpng versions 1.0.7, July 1, 2000, through 1.6.19beta02, August 17, 2015, are
|
||||||
Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, and are
|
Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, and are
|
||||||
distributed according to the same disclaimer and license as libpng-1.0.6
|
distributed according to the same disclaimer and license as libpng-1.0.6
|
||||||
with the following individuals added to the list of Contributing Authors:
|
with the following individuals added to the list of Contributing Authors:
|
||||||
@ -6251,7 +6258,7 @@ the additional disclaimers inserted at version 1.0.7.
|
|||||||
|
|
||||||
Glenn Randers-Pehrson
|
Glenn Randers-Pehrson
|
||||||
glennrp at users.sourceforge.net
|
glennrp at users.sourceforge.net
|
||||||
August 11, 2015
|
August 17, 2015
|
||||||
|
|
||||||
.\" end of man page
|
.\" end of man page
|
||||||
|
|
||||||
|
28
png.c
28
png.c
@ -769,13 +769,13 @@ png_get_copyright(png_const_structrp png_ptr)
|
|||||||
#else
|
#else
|
||||||
# ifdef __STDC__
|
# ifdef __STDC__
|
||||||
return PNG_STRING_NEWLINE \
|
return PNG_STRING_NEWLINE \
|
||||||
"libpng version 1.6.19beta02 - August 14, 2015" PNG_STRING_NEWLINE \
|
"libpng version 1.6.19beta02 - August 17, 2015" PNG_STRING_NEWLINE \
|
||||||
"Copyright (c) 1998-2015 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \
|
"Copyright (c) 1998-2015 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \
|
||||||
"Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
|
"Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
|
||||||
"Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
|
"Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
|
||||||
PNG_STRING_NEWLINE;
|
PNG_STRING_NEWLINE;
|
||||||
# else
|
# else
|
||||||
return "libpng version 1.6.19beta02 - August 14, 2015\
|
return "libpng version 1.6.19beta02 - August 17, 2015\
|
||||||
Copyright (c) 1998-2015 Glenn Randers-Pehrson\
|
Copyright (c) 1998-2015 Glenn Randers-Pehrson\
|
||||||
Copyright (c) 1996-1997 Andreas Dilger\
|
Copyright (c) 1996-1997 Andreas Dilger\
|
||||||
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.";
|
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.";
|
||||||
@ -1967,7 +1967,7 @@ png_icc_check_header(png_const_structrp png_ptr, png_colorspacerp colorspace,
|
|||||||
* 16 bits.
|
* 16 bits.
|
||||||
*/
|
*/
|
||||||
temp = png_get_uint_32(profile+64);
|
temp = png_get_uint_32(profile+64);
|
||||||
if (temp >= 0xffff) /* The ICC limit */
|
if (temp >= 0xffffUL) /* The ICC limit */
|
||||||
return png_icc_profile_error(png_ptr, colorspace, name, temp,
|
return png_icc_profile_error(png_ptr, colorspace, name, temp,
|
||||||
"invalid rendering intent");
|
"invalid rendering intent");
|
||||||
|
|
||||||
@ -3283,15 +3283,15 @@ png_muldiv(png_fixed_point_p res, png_fixed_point a, png_int_32 times,
|
|||||||
/* Following can't overflow because the arguments only
|
/* Following can't overflow because the arguments only
|
||||||
* have 31 bits each, however the result may be 32 bits.
|
* have 31 bits each, however the result may be 32 bits.
|
||||||
*/
|
*/
|
||||||
s16 = (A >> 16) * (T & 0xffff) +
|
s16 = (A >> 16) * (T & 0xffffUL) +
|
||||||
(A & 0xffff) * (T >> 16);
|
(A & 0xffffUL) * (T >> 16);
|
||||||
/* Can't overflow because the a*times bit is only 30
|
/* Can't overflow because the a*times bit is only 30
|
||||||
* bits at most.
|
* bits at most.
|
||||||
*/
|
*/
|
||||||
s32 = (A >> 16) * (T >> 16) + (s16 >> 16);
|
s32 = (A >> 16) * (T >> 16) + (s16 >> 16);
|
||||||
s00 = (A & 0xffff) * (T & 0xffff);
|
s00 = (A & 0xffffUL) * (T & 0xffffUL);
|
||||||
|
|
||||||
s16 = (s16 & 0xffff) << 16;
|
s16 = (s16 & 0xffffUL) << 16;
|
||||||
s00 += s16;
|
s00 += s16;
|
||||||
|
|
||||||
if (s00 < s16)
|
if (s00 < s16)
|
||||||
@ -3584,19 +3584,19 @@ png_log16bit(png_uint_32 x)
|
|||||||
unsigned int lg2 = 0;
|
unsigned int lg2 = 0;
|
||||||
|
|
||||||
/* As above, but now the input has 16 bits. */
|
/* As above, but now the input has 16 bits. */
|
||||||
if ((x &= 0xffff) == 0)
|
if ((x &= 0xffffUL) == 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if ((x & 0xff00) == 0)
|
if ((x & 0xff00UL) == 0)
|
||||||
lg2 = 8, x <<= 8;
|
lg2 = 8, x <<= 8;
|
||||||
|
|
||||||
if ((x & 0xf000) == 0)
|
if ((x & 0xf000UL) == 0)
|
||||||
lg2 += 4, x <<= 4;
|
lg2 += 4, x <<= 4;
|
||||||
|
|
||||||
if ((x & 0xc000) == 0)
|
if ((x & 0xc000UL) == 0)
|
||||||
lg2 += 2, x <<= 2;
|
lg2 += 2, x <<= 2;
|
||||||
|
|
||||||
if ((x & 0x8000) == 0)
|
if ((x & 0x8000UL) == 0)
|
||||||
lg2 += 1, x <<= 1;
|
lg2 += 1, x <<= 1;
|
||||||
|
|
||||||
/* Calculate the base logarithm from the top 8 bits as a 28-bit fractional
|
/* Calculate the base logarithm from the top 8 bits as a 28-bit fractional
|
||||||
@ -3729,7 +3729,7 @@ png_exp8bit(png_fixed_point lg2)
|
|||||||
* step.
|
* step.
|
||||||
*/
|
*/
|
||||||
x -= x >> 8;
|
x -= x >> 8;
|
||||||
return (png_byte)(((x + 0x7fffffU) >> 24) & 0xff);
|
return (png_byte)(((x + 0x7fffff) >> 24) & 0xff);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef PNG_16BIT_SUPPORTED
|
#ifdef PNG_16BIT_SUPPORTED
|
||||||
@ -3989,7 +3989,7 @@ png_build_16to8_table(png_structrp png_ptr, png_uint_16pp *ptable,
|
|||||||
/* And fill in the final entries. */
|
/* And fill in the final entries. */
|
||||||
while (last < (num << 8))
|
while (last < (num << 8))
|
||||||
{
|
{
|
||||||
table[last & (0xff >> shift)][last >> (8U - shift)] = 65535U;
|
table[last & (0xffU >> shift)][last >> (8U - shift)] = 65535U;
|
||||||
last++;
|
last++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
10
png.h
10
png.h
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* png.h - header file for PNG reference library
|
/* png.h - header file for PNG reference library
|
||||||
*
|
*
|
||||||
* libpng version 1.6.19beta02, August 14, 2015
|
* libpng version 1.6.19beta02, August 17, 2015
|
||||||
*
|
*
|
||||||
* Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
@ -12,7 +12,7 @@
|
|||||||
* Authors and maintainers:
|
* Authors and maintainers:
|
||||||
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
|
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
|
||||||
* libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger
|
* libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger
|
||||||
* libpng versions 0.97, January 1998, through 1.6.19beta02, August 14, 2015: Glenn
|
* libpng versions 0.97, January 1998, through 1.6.19beta02, August 17, 2015: Glenn
|
||||||
* See also "Contributing Authors", below.
|
* See also "Contributing Authors", below.
|
||||||
*
|
*
|
||||||
* Note about libpng version numbers:
|
* Note about libpng version numbers:
|
||||||
@ -251,7 +251,7 @@
|
|||||||
*
|
*
|
||||||
* This code is released under the libpng license.
|
* This code is released under the libpng license.
|
||||||
*
|
*
|
||||||
* libpng versions 1.0.7, July 1, 2000, through 1.6.19beta02, August 14, 2015, are
|
* libpng versions 1.0.7, July 1, 2000, through 1.6.19beta02, August 17, 2015, are
|
||||||
* Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, and are
|
* Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, and are
|
||||||
* distributed according to the same disclaimer and license as libpng-1.0.6
|
* distributed according to the same disclaimer and license as libpng-1.0.6
|
||||||
* with the following individuals added to the list of Contributing Authors:
|
* with the following individuals added to the list of Contributing Authors:
|
||||||
@ -360,7 +360,7 @@
|
|||||||
* Y2K compliance in libpng:
|
* Y2K compliance in libpng:
|
||||||
* =========================
|
* =========================
|
||||||
*
|
*
|
||||||
* August 14, 2015
|
* August 17, 2015
|
||||||
*
|
*
|
||||||
* Since the PNG Development group is an ad-hoc body, we can't make
|
* Since the PNG Development group is an ad-hoc body, we can't make
|
||||||
* an official declaration.
|
* an official declaration.
|
||||||
@ -430,7 +430,7 @@
|
|||||||
/* Version information for png.h - this should match the version in png.c */
|
/* Version information for png.h - this should match the version in png.c */
|
||||||
#define PNG_LIBPNG_VER_STRING "1.6.19beta02"
|
#define PNG_LIBPNG_VER_STRING "1.6.19beta02"
|
||||||
#define PNG_HEADER_VERSION_STRING \
|
#define PNG_HEADER_VERSION_STRING \
|
||||||
" libpng version 1.6.19beta02 - August 14, 2015\n"
|
" libpng version 1.6.19beta02 - August 17, 2015\n"
|
||||||
|
|
||||||
#define PNG_LIBPNG_VER_SONUM 16
|
#define PNG_LIBPNG_VER_SONUM 16
|
||||||
#define PNG_LIBPNG_VER_DLLNUM 16
|
#define PNG_LIBPNG_VER_DLLNUM 16
|
||||||
|
@ -359,8 +359,8 @@ png_do_read_intrapixel(png_row_infop row_info, png_bytep row)
|
|||||||
png_uint_32 s0 = (*(rp ) << 8) | *(rp + 1);
|
png_uint_32 s0 = (*(rp ) << 8) | *(rp + 1);
|
||||||
png_uint_32 s1 = (*(rp + 2) << 8) | *(rp + 3);
|
png_uint_32 s1 = (*(rp + 2) << 8) | *(rp + 3);
|
||||||
png_uint_32 s2 = (*(rp + 4) << 8) | *(rp + 5);
|
png_uint_32 s2 = (*(rp + 4) << 8) | *(rp + 5);
|
||||||
png_uint_32 red = (s0 + s1 + 65536) & 0xffff;
|
png_uint_32 red = (s0 + s1 + 65536) & 0xffffUL;
|
||||||
png_uint_32 blue = (s2 + s1 + 65536) & 0xffff;
|
png_uint_32 blue = (s2 + s1 + 65536) & 0xffffUL;
|
||||||
*(rp ) = (png_byte)((red >> 8) & 0xff);
|
*(rp ) = (png_byte)((red >> 8) & 0xff);
|
||||||
*(rp + 1) = (png_byte)(red & 0xff);
|
*(rp + 1) = (png_byte)(red & 0xff);
|
||||||
*(rp + 4) = (png_byte)((blue >> 8) & 0xff);
|
*(rp + 4) = (png_byte)((blue >> 8) & 0xff);
|
||||||
|
@ -3642,7 +3642,7 @@ png_do_compose(png_row_infop row_info, png_bytep row, png_structrp png_ptr)
|
|||||||
png_uint_16 a = (png_uint_16)(((*(sp + 2)) << 8)
|
png_uint_16 a = (png_uint_16)(((*(sp + 2)) << 8)
|
||||||
+ *(sp + 3));
|
+ *(sp + 3));
|
||||||
|
|
||||||
if (a == (png_uint_16)0xffff)
|
if (a == (png_uint_16)0xffffL)
|
||||||
{
|
{
|
||||||
png_uint_16 v;
|
png_uint_16 v;
|
||||||
|
|
||||||
@ -3691,7 +3691,7 @@ png_do_compose(png_row_infop row_info, png_bytep row, png_structrp png_ptr)
|
|||||||
*(sp + 1) = (png_byte)(png_ptr->background.gray & 0xff);
|
*(sp + 1) = (png_byte)(png_ptr->background.gray & 0xff);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (a < 0xffff)
|
else if (a < 0xffffL)
|
||||||
{
|
{
|
||||||
png_uint_16 g, v;
|
png_uint_16 g, v;
|
||||||
|
|
||||||
@ -3795,7 +3795,7 @@ png_do_compose(png_row_infop row_info, png_bytep row, png_structrp png_ptr)
|
|||||||
png_uint_16 a = (png_uint_16)(((png_uint_16)(*(sp + 6))
|
png_uint_16 a = (png_uint_16)(((png_uint_16)(*(sp + 6))
|
||||||
<< 8) + (png_uint_16)(*(sp + 7)));
|
<< 8) + (png_uint_16)(*(sp + 7)));
|
||||||
|
|
||||||
if (a == (png_uint_16)0xffff)
|
if (a == (png_uint_16)0xffffL)
|
||||||
{
|
{
|
||||||
png_uint_16 v;
|
png_uint_16 v;
|
||||||
|
|
||||||
@ -3881,7 +3881,7 @@ png_do_compose(png_row_infop row_info, png_bytep row, png_structrp png_ptr)
|
|||||||
*(sp + 5) = (png_byte)(png_ptr->background.blue & 0xff);
|
*(sp + 5) = (png_byte)(png_ptr->background.blue & 0xff);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (a < 0xffff)
|
else if (a < 0xffffL)
|
||||||
{
|
{
|
||||||
png_uint_16 v;
|
png_uint_16 v;
|
||||||
|
|
||||||
|
10
pngwrite.c
10
pngwrite.c
@ -669,8 +669,8 @@ png_do_write_intrapixel(png_row_infop row_info, png_bytep row)
|
|||||||
png_uint_32 s0 = (*(rp ) << 8) | *(rp + 1);
|
png_uint_32 s0 = (*(rp ) << 8) | *(rp + 1);
|
||||||
png_uint_32 s1 = (*(rp + 2) << 8) | *(rp + 3);
|
png_uint_32 s1 = (*(rp + 2) << 8) | *(rp + 3);
|
||||||
png_uint_32 s2 = (*(rp + 4) << 8) | *(rp + 5);
|
png_uint_32 s2 = (*(rp + 4) << 8) | *(rp + 5);
|
||||||
png_uint_32 red = (png_uint_32)((s0 - s1) & 0xffffL);
|
png_uint_32 red = (png_uint_32)((s0 - s1) & 0xffffUL);
|
||||||
png_uint_32 blue = (png_uint_32)((s2 - s1) & 0xffffL);
|
png_uint_32 blue = (png_uint_32)((s2 - s1) & 0xffffUL);
|
||||||
*(rp ) = (png_byte)(red >> 8);
|
*(rp ) = (png_byte)(red >> 8);
|
||||||
*(rp + 1) = (png_byte)red;
|
*(rp + 1) = (png_byte)red;
|
||||||
*(rp + 4) = (png_byte)(blue >> 8);
|
*(rp + 4) = (png_byte)(blue >> 8);
|
||||||
@ -1570,7 +1570,7 @@ png_write_image_16bit(png_voidp argument)
|
|||||||
* is only initialized when required.
|
* is only initialized when required.
|
||||||
*/
|
*/
|
||||||
if (alpha > 0 && alpha < 65535)
|
if (alpha > 0 && alpha < 65535)
|
||||||
reciprocal = ((0xffff<<15)+(alpha>>1))/alpha;
|
reciprocal = ((0xffffUL<<15)+(alpha>>1))/alpha;
|
||||||
|
|
||||||
c = channels;
|
c = channels;
|
||||||
do /* always at least one channel */
|
do /* always at least one channel */
|
||||||
@ -1621,7 +1621,7 @@ png_write_image_16bit(png_voidp argument)
|
|||||||
* calculation can be done to 15 bits of accuracy; however, the output needs to
|
* calculation can be done to 15 bits of accuracy; however, the output needs to
|
||||||
* be scaled in the range 0..255*65535, so include that scaling here.
|
* be scaled in the range 0..255*65535, so include that scaling here.
|
||||||
*/
|
*/
|
||||||
# define UNP_RECIPROCAL(alpha) ((((0xffff*0xff)<<7)+(alpha>>1))/alpha)
|
# define UNP_RECIPROCAL(alpha) ((((0xffffUL*0xffU)<<7)+(alpha>>1))/alpha)
|
||||||
|
|
||||||
static png_byte
|
static png_byte
|
||||||
png_unpremultiply(png_uint_32 component, png_uint_32 alpha,
|
png_unpremultiply(png_uint_32 component, png_uint_32 alpha,
|
||||||
@ -1836,7 +1836,7 @@ png_image_set_PLTE(png_image_write_control *display)
|
|||||||
* divided by 128 (i.e. asr 7).
|
* divided by 128 (i.e. asr 7).
|
||||||
*/
|
*/
|
||||||
if (alphabyte > 0 && alphabyte < 255)
|
if (alphabyte > 0 && alphabyte < 255)
|
||||||
reciprocal = (((0xffff*0xff)<<7)+(alpha>>1))/alpha;
|
reciprocal = (((0xffffUL*0xffU)<<7)+(alpha>>1))/alpha;
|
||||||
|
|
||||||
tRNS[i] = alphabyte;
|
tRNS[i] = alphabyte;
|
||||||
if (alphabyte < 255)
|
if (alphabyte < 255)
|
||||||
|
@ -237,7 +237,7 @@ png_image_size(png_structrp png_ptr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
return 0xffffffffU;
|
return 0xffffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef PNG_WRITE_OPTIMIZE_CMF_SUPPORTED
|
#ifdef PNG_WRITE_OPTIMIZE_CMF_SUPPORTED
|
||||||
|
Loading…
x
Reference in New Issue
Block a user