[libpng16] Imported from libpng-1.6.0beta29.tar

This commit is contained in:
Glenn Randers-Pehrson 2012-09-04 16:47:25 -05:00
parent b98681b49a
commit 9c06d78468
4 changed files with 15 additions and 15 deletions

View File

@ -499,7 +499,7 @@ Version 1.6.0beta29 [September 4, 2012]
checking. Several errors that caused rejection of the profile are now checking. Several errors that caused rejection of the profile are now
handled with a warning in such a way that the invalid profiles will be handled with a warning in such a way that the invalid profiles will be
read by default in release (but not pre-RC) builds but will not be read by default in release (but not pre-RC) builds but will not be
written by default. The easy part of handling a cHRM chunk is written, written by default. The easy part of handling the cHRM chunk is written,
where the ICC profile contains the required data. The more difficult where the ICC profile contains the required data. The more difficult
part plus guessing a gAMA value requires code to pass selected RGB values part plus guessing a gAMA value requires code to pass selected RGB values
through the profile. through the profile.

View File

@ -4251,7 +4251,7 @@ Version 1.6.0beta29 [September 4, 2012]
checking. Several errors that caused rejection of the profile are now checking. Several errors that caused rejection of the profile are now
handled with a warning in such a way that the invalid profiles will be handled with a warning in such a way that the invalid profiles will be
read by default in release (but not pre-RC) builds but will not be read by default in release (but not pre-RC) builds but will not be
written by default. The easy part of handling a cHRM chunk is written, written by default. The easy part of handling the cHRM chunk is written,
where the ICC profile contains the required data. The more difficult where the ICC profile contains the required data. The more difficult
part plus guessing a gAMA value requires code to pass selected RGB values part plus guessing a gAMA value requires code to pass selected RGB values
through the profile. through the profile.

20
png.c
View File

@ -1995,10 +1995,10 @@ png_icc_check_header(png_const_structrp png_ptr, png_colorspacerp colorspace,
return profile_error(png_ptr, colorspace, name, temp, return profile_error(png_ptr, colorspace, name, temp,
"invalid signature"); "invalid signature");
/* Currently the PCS illuminant/adopted white point are required to be D50, /* Currently the PCS illuminant/adapted white point are required to be D50,
* however the profile contains a record of the illuminant so perhaps ICC * however the profile contains a record of the illuminant so perhaps ICC
* expects to be able to change this in the future (despite the rationale in * expects to be able to change this in the future (despite the rationale in
* the introduction for using a fixed PCS adopted white.) Consequently the * the introduction for using a fixed PCS adapted white.) Consequently the
* following is just a warning. * following is just a warning.
*/ */
if (memcmp(profile+68, D50_nCIEXYZ, 12) != 0) if (memcmp(profile+68, D50_nCIEXYZ, 12) != 0)
@ -2371,7 +2371,7 @@ png_icc_find_wtpt(png_const_structrp png_ptr, png_const_charp name,
temp == 0x73706163 /* 'spac' */) && temp == 0x73706163 /* 'spac' */) &&
memcmp(profile+68, tag+8, 12) != 0) memcmp(profile+68, tag+8, 12) != 0)
(void)profile_error(png_ptr, NULL, name, temp, (void)profile_error(png_ptr, NULL, name, temp,
"media white point differs from image adopted white"); "media white point differs from image adapted white");
(*adapted_white_point)[0] = png_get_int_32(tag+ 8); (*adapted_white_point)[0] = png_get_int_32(tag+ 8);
(*adapted_white_point)[1] = png_get_int_32(tag+12); (*adapted_white_point)[1] = png_get_int_32(tag+12);
@ -2437,10 +2437,10 @@ png_icc_find_chad(png_const_structrp png_ptr, png_const_charp name,
* colorant values. * colorant values.
* *
* All of the methods for determining the cHRM values depend on * All of the methods for determining the cHRM values depend on
* reversing the adaptatation to the PCS adopted white (D50); this is * reversing the adaptatation to the PCS adapted white (D50); this is
* because in all cases one or other PCS value has to be used. * because in all cases one or other PCS value has to be used.
* *
* This routine determines if 'chad' tag is present (if not the adopted white * This routine determines if 'chad' tag is present (if not the adapted white
* of the scene is D50 and no adaptation was performed) and returns the * of the scene is D50 and no adaptation was performed) and returns the
* inverted matrix. * inverted matrix.
*/ */
@ -2515,7 +2515,7 @@ png_icc_set_cHRM_from_chrm(png_const_structrp png_ptr,
* the PCS white, however the white point, which tells us the relative * the PCS white, however the white point, which tells us the relative
* intensity of the colorants, is not given. We can get the white point from * intensity of the colorants, is not given. We can get the white point from
* the mediaWhitePointTag value, which should be present in all profiles, * the mediaWhitePointTag value, which should be present in all profiles,
* however this is adapted to the PCS illuminated/adopted white, so must be * however this is adapted to the PCS illuminated/adapted white, so must be
* unadapted. * unadapted.
*/ */
{ {
@ -2593,7 +2593,7 @@ png_icc_set_cHRM_from_chrm(png_const_structrp png_ptr,
{ {
/* For the perfect reflector 'Y' shall be normalized /* For the perfect reflector 'Y' shall be normalized
* to 1,0 (see ICC 2010 4.14, XYZNumber), but this is * to 1,0 (see ICC 2010 4.14, XYZNumber), but this is
* the media white point (not the adopted white) * the media white point (not the adapted white)
* adapted to the PCS illuminant, so Y might be some * adapted to the PCS illuminant, so Y might be some
* other value, this sanity check is mainly to avoid * other value, this sanity check is mainly to avoid
* integer overflow. * integer overflow.
@ -2771,7 +2771,7 @@ png_icc_set_cHRM_from_endpoints(png_const_structrp png_ptr,
png_XYZ cHRM_XYZ; png_XYZ cHRM_XYZ;
/* Now we have colorant XYZ values in their unadapted form /* Now we have colorant XYZ values in their unadapted form
* (i.e. implicitly with an adopted white of the media). * (i.e. implicitly with an adapted white of the media).
* This is what PNG uses for cHRM, but they need to be * This is what PNG uses for cHRM, but they need to be
* converted to the libpng structure. * converted to the libpng structure.
* *
@ -3028,8 +3028,8 @@ png_icc_check_tag_table(png_const_structrp png_ptr, png_colorspacerp colorspace,
case 0x63686164: /* 'chad' - chromaticAdaptationTag */ case 0x63686164: /* 'chad' - chromaticAdaptationTag */
/* The tag must be a 9 element array of s15Fixed16ArrayType, the tag /* The tag must be a 9 element array of s15Fixed16ArrayType, the tag
* is optional, if absent it indicates that the original adopted * is optional, if absent it indicates that the original adapted
* white was the same as the PCS adopted white - D50. * white was the same as the PCS adapted white - D50.
*/ */
if (tag_length != 44) if (tag_length != 44)
(void)profile_error(png_ptr, NULL, name, tag_start, (void)profile_error(png_ptr, NULL, name, tag_start,

View File

@ -147,11 +147,11 @@ typedef const png_colorspace * PNG_RESTRICT png_const_colorspacerp;
/* The profile description and copyright must be present in all valid ICC /* The profile description and copyright must be present in all valid ICC
* profiles, however libpng does not use them so absence is just reported as * profiles, however libpng does not use them so absence is just reported as
* a warning. The media white point should be present too, but if it isn't * a warning. The media white point should be present too, but if it isn't
* all we lose is the ability to know if it differs from the adopted white * all we lose is the ability to know if it differs from the adapted white
* (i.e. the information that the device maxima are actually colored; * (i.e. the information that the device maxima are actually colored;
* a non-white substrate for a printer, or an uncorrected scan for example.) * a non-white substrate for a printer, or an uncorrected scan for example.)
* The chromaticAdaptationTag tells us that the adopted white of the original * The chromaticAdaptationTag tells us that the adapted white of the original
* differs from the PCS adopted white (which is identical to the PCS * differs from the PCS adapted white (which is identical to the PCS
* illuminant and should always be D50). * illuminant and should always be D50).
*/ */
# define PNG_ICC_profileDescriptionTag 0x00000010U /* required */ # define PNG_ICC_profileDescriptionTag 0x00000010U /* required */