Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Libpng
提交
5d713fe1
T
Third Party Libpng
项目概览
OpenHarmony
/
Third Party Libpng
大约 1 年 前同步成功
通知
4
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Libpng
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5d713fe1
编写于
10月 31, 2014
作者:
G
Glenn Randers-Pehrson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[libpng16] Changed remaining "if (!x)" to "if (x == 0)" and "if (x)" to
"if (x !== 0)"
上级
6b9a20e7
变更
16
展开全部
隐藏空白更改
内联
并排
Showing
16 changed file
with
880 addition
and
795 deletion
+880
-795
ANNOUNCE
ANNOUNCE
+3
-2
CHANGES
CHANGES
+2
-1
example.c
example.c
+12
-12
png.c
png.c
+168
-130
pngerror.c
pngerror.c
+24
-22
pngget.c
pngget.c
+60
-46
pngpread.c
pngpread.c
+21
-20
pngread.c
pngread.c
+72
-68
pngrtran.c
pngrtran.c
+144
-142
pngrutil.c
pngrutil.c
+146
-141
pngset.c
pngset.c
+32
-20
pngtest.c
pngtest.c
+30
-28
pngtrans.c
pngtrans.c
+5
-5
pngwrite.c
pngwrite.c
+96
-93
pngwtran.c
pngwtran.c
+12
-12
pngwutil.c
pngwutil.c
+53
-53
未找到文件。
ANNOUNCE
浏览文件 @
5d713fe1
Libpng 1.6.15beta02 -
October 29
, 2014
Libpng 1.6.15beta02 -
November 1
, 2014
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.
...
...
@@ -30,7 +30,8 @@ Version 1.6.15beta01 [October 29, 2014]
Simplified png_free_data().
Added missing "ptr = NULL" after some instances of png_free().
Version 1.6.15beta02 [October 29, 2014]
Version 1.6.15beta02 [November 1, 2014]
Changed remaining "if (!x)" to "if (x == 0)" and "if (x)" to "if (x !== 0)"
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
...
...
CHANGES
浏览文件 @
5d713fe1
...
...
@@ -5038,7 +5038,8 @@ Version 1.6.15beta01 [October 29, 2014]
Simplified png_free_data().
Added missing "ptr = NULL" after some instances of png_free().
Version 1.6.15beta02 [October 29, 2014]
Version 1.6.15beta02 [November 1, 2014]
Changed remaining "if (!x)" to "if (x == 0)" and "if (x)" to "if (x !== 0)"
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit
...
...
example.c
浏览文件 @
5d713fe1
...
...
@@ -2,7 +2,7 @@
#if 0 /* in case someone actually tries to compile this */
/* example.c - an example of using libpng
* Last changed in libpng 1.6.1
1 [June 5, 2014
]
* Last changed in libpng 1.6.1
5 [(PENDING RELEASE)
]
* Maintained 1998-2014 Glenn Randers-Pehrson
* Maintained 1996, 1997 Andreas Dilger)
* Written 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
...
...
@@ -52,7 +52,7 @@ int main(int argc, const char **argv)
image.version = PNG_IMAGE_VERSION;
/* The first argument is the file to read: */
if (png_image_begin_read_from_file(&image, argv[1]))
if (png_image_begin_read_from_file(&image, argv[1])
!= 0
)
{
png_bytep buffer;
...
...
@@ -97,7 +97,7 @@ int main(int argc, const char **argv)
*/
if (buffer != NULL &&
png_image_finish_read(&image, NULL/*background*/, buffer,
0/*row_stride*/, NULL/*colormap*/))
0/*row_stride*/, NULL/*colormap*/)
!= 0
)
{
/* Now write the image out to the second argument. In the write
* call 'convert_to_8bit' allows 16-bit data to be squashed down to
...
...
@@ -105,7 +105,7 @@ int main(int argc, const char **argv)
* to the 8-bit format.
*/
if (png_image_write_to_file(&image, argv[2], 0/*convert_to_8bit*/,
buffer, 0/*row_stride*/, NULL/*colormap*/))
buffer, 0/*row_stride*/, NULL/*colormap*/)
!= 0
)
{
/* The image has been written successfully. */
exit(0);
...
...
@@ -405,7 +405,7 @@ void read_png(FILE *fp, unsigned int sig_read) /* File is already open */
/* Expand paletted or RGB images with transparency to full alpha channels
* so the data will be available as RGBA quartets.
*/
if
(
png_get_valid
(
png_ptr
,
info_ptr
,
PNG_INFO_tRNS
))
if
(
png_get_valid
(
png_ptr
,
info_ptr
,
PNG_INFO_tRNS
)
!=
0
)
png_set_tRNS_to_alpha
(
png_ptr
);
/* Set the background color to draw transparent and alpha images over.
...
...
@@ -417,7 +417,7 @@ void read_png(FILE *fp, unsigned int sig_read) /* File is already open */
png_color_16
my_background
,
*
image_background
;
if
(
png_get_bKGD
(
png_ptr
,
info_ptr
,
&
image_background
))
if
(
png_get_bKGD
(
png_ptr
,
info_ptr
,
&
image_background
)
!=
0
)
png_set_background
(
png_ptr
,
image_background
,
PNG_BACKGROUND_GAMMA_FILE
,
1
,
1
.
0
);
else
...
...
@@ -454,12 +454,12 @@ void read_png(FILE *fp, unsigned int sig_read) /* File is already open */
int
intent
;
if
(
png_get_sRGB
(
png_ptr
,
info_ptr
,
&
intent
))
if
(
png_get_sRGB
(
png_ptr
,
info_ptr
,
&
intent
)
!=
0
)
png_set_gamma
(
png_ptr
,
screen_gamma
,
PNG_DEFAULT_sRGB
);
else
{
double
image_gamma
;
if
(
png_get_gAMA
(
png_ptr
,
info_ptr
,
&
image_gamma
))
if
(
png_get_gAMA
(
png_ptr
,
info_ptr
,
&
image_gamma
)
!=
0
)
png_set_gamma
(
png_ptr
,
screen_gamma
,
image_gamma
);
else
png_set_gamma
(
png_ptr
,
screen_gamma
,
0
.
45455
);
...
...
@@ -469,7 +469,7 @@ void read_png(FILE *fp, unsigned int sig_read) /* File is already open */
/* Quantize RGB files down to 8 bit palette or reduce palettes
* to the number of colors available on your screen.
*/
if
(
color_type
&
PNG_COLOR_MASK_COLOR
)
if
(
(
color_type
&
PNG_COLOR_MASK_COLOR
)
!=
0
)
{
int
num_palette
;
png_colorp
palette
;
...
...
@@ -484,7 +484,7 @@ void read_png(FILE *fp, unsigned int sig_read) /* File is already open */
MAX_SCREEN_COLORS
,
NULL
,
0
);
}
/* This reduces the image to the palette supplied in the file */
else
if
(
png_get_PLTE
(
png_ptr
,
info_ptr
,
&
palette
,
&
num_palette
))
else
if
(
png_get_PLTE
(
png_ptr
,
info_ptr
,
&
palette
,
&
num_palette
)
!=
0
)
{
png_uint_16p
histogram
=
NULL
;
...
...
@@ -503,7 +503,7 @@ void read_png(FILE *fp, unsigned int sig_read) /* File is already open */
* [0,65535] to the original [0,7] or [0,31], or whatever range the
* colors were originally in:
*/
if
(
png_get_valid
(
png_ptr
,
info_ptr
,
PNG_INFO_sBIT
))
if
(
png_get_valid
(
png_ptr
,
info_ptr
,
PNG_INFO_sBIT
)
!=
0
)
{
png_color_8p
sig_bit_p
;
...
...
@@ -512,7 +512,7 @@ void read_png(FILE *fp, unsigned int sig_read) /* File is already open */
}
/* Flip the RGB pixels to BGR (or RGBA to BGRA) */
if
(
color_type
&
PNG_COLOR_MASK_COLOR
)
if
(
(
color_type
&
PNG_COLOR_MASK_COLOR
)
!=
0
)
png_set_bgr
(
png_ptr
);
/* Swap the RGBA or GA data to ARGB or AG (or BGRA to ABGR) */
...
...
png.c
浏览文件 @
5d713fe1
此差异已折叠。
点击以展开。
pngerror.c
浏览文件 @
5d713fe1
/* pngerror.c - stub functions for i/o and memory allocation
*
* Last changed in libpng 1.6.1
3 [August 21, 2014
]
* Last changed in libpng 1.6.1
5 [(PENDING RELEASE)
]
* Copyright (c) 1998-2014 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.)
...
...
@@ -43,8 +43,8 @@ png_error,(png_const_structrp png_ptr, png_const_charp error_message),
char
msg
[
16
];
if
(
png_ptr
!=
NULL
)
{
if
(
png_ptr
->
flags
&
(
PNG_FLAG_STRIP_ERROR_NUMBERS
|
PNG_FLAG_STRIP_ERROR_TEXT
))
if
(
(
png_ptr
->
flags
&
(
PNG_FLAG_STRIP_ERROR_NUMBERS
|
PNG_FLAG_STRIP_ERROR_TEXT
))
!=
0
{
if
(
*
error_message
==
PNG_LITERAL_SHARP
)
{
...
...
@@ -54,7 +54,7 @@ png_error,(png_const_structrp png_ptr, png_const_charp error_message),
if
(
error_message
[
offset
]
==
' '
)
break
;
if
(
png_ptr
->
flags
&
PNG_FLAG_STRIP_ERROR_TEXT
)
if
(
(
png_ptr
->
flags
&
PNG_FLAG_STRIP_ERROR_TEXT
)
!=
0
)
{
int
i
;
for
(
i
=
0
;
i
<
offset
-
1
;
i
++
)
...
...
@@ -69,7 +69,7 @@ png_error,(png_const_structrp png_ptr, png_const_charp error_message),
else
{
if
(
png_ptr
->
flags
&
PNG_FLAG_STRIP_ERROR_TEXT
)
if
(
(
png_ptr
->
flags
&
PNG_FLAG_STRIP_ERROR_TEXT
)
!=
0
)
{
msg
[
0
]
=
'0'
;
msg
[
1
]
=
'\0'
;
...
...
@@ -152,7 +152,7 @@ png_format_number(png_const_charp start, png_charp end, int format,
case
PNG_NUMBER_FORMAT_fixed
:
/* Needs five digits (the fraction) */
mincount
=
5
;
if
(
output
||
number
%
10
!=
0
)
if
(
output
!=
0
||
number
%
10
!=
0
)
{
*--
end
=
digits
[
number
%
10
];
output
=
1
;
...
...
@@ -189,7 +189,7 @@ png_format_number(png_const_charp start, png_charp end, int format,
++
count
;
/* Float a fixed number here: */
if
(
format
==
PNG_NUMBER_FORMAT_fixed
)
if
(
count
==
5
)
if
(
end
>
start
)
if
(
(
format
==
PNG_NUMBER_FORMAT_fixed
)
&&
(
count
==
5
)
&&
(
end
>
start
)
)
{
/* End of the fraction, but maybe nothing was output? In that case
* drop the decimal point. If the number is a true zero handle that
...
...
@@ -219,8 +219,8 @@ png_warning(png_const_structrp png_ptr, png_const_charp warning_message)
if
(
png_ptr
!=
NULL
)
{
#ifdef PNG_ERROR_NUMBERS_SUPPORTED
if
(
png_ptr
->
flags
&
(
PNG_FLAG_STRIP_ERROR_NUMBERS
|
PNG_FLAG_STRIP_ERROR_TEXT
))
if
(
(
png_ptr
->
flags
&
(
PNG_FLAG_STRIP_ERROR_NUMBERS
|
PNG_FLAG_STRIP_ERROR_TEXT
))
!=
0
)
#endif
{
if
(
*
warning_message
==
PNG_LITERAL_SHARP
)
...
...
@@ -361,7 +361,7 @@ png_formatted_warning(png_const_structrp png_ptr, png_warning_parameters p,
void
PNGAPI
png_benign_error
(
png_const_structrp
png_ptr
,
png_const_charp
error_message
)
{
if
(
png_ptr
->
flags
&
PNG_FLAG_BENIGN_ERRORS_WARN
)
if
(
(
png_ptr
->
flags
&
PNG_FLAG_BENIGN_ERRORS_WARN
)
!=
0
)
{
# ifdef PNG_READ_SUPPORTED
if
((
png_ptr
->
mode
&
PNG_IS_READ_STRUCT
)
!=
0
&&
...
...
@@ -391,7 +391,7 @@ png_benign_error(png_const_structrp png_ptr, png_const_charp error_message)
void
/* PRIVATE */
png_app_warning
(
png_const_structrp
png_ptr
,
png_const_charp
error_message
)
{
if
(
png_ptr
->
flags
&
PNG_FLAG_APP_WARNINGS_WARN
)
if
(
(
png_ptr
->
flags
&
PNG_FLAG_APP_WARNINGS_WARN
)
!=
0
)
png_warning
(
png_ptr
,
error_message
);
else
png_error
(
png_ptr
,
error_message
);
...
...
@@ -404,7 +404,7 @@ png_app_warning(png_const_structrp png_ptr, png_const_charp error_message)
void
/* PRIVATE */
png_app_error
(
png_const_structrp
png_ptr
,
png_const_charp
error_message
)
{
if
(
png_ptr
->
flags
&
PNG_FLAG_APP_ERRORS_WARN
)
if
(
(
png_ptr
->
flags
&
PNG_FLAG_APP_ERRORS_WARN
)
!=
0
)
png_warning
(
png_ptr
,
error_message
);
else
png_error
(
png_ptr
,
error_message
);
...
...
@@ -442,7 +442,7 @@ png_format_buffer(png_const_structrp png_ptr, png_charp buffer, png_const_charp
int
c
=
(
int
)(
chunk_name
>>
ishift
)
&
0xff
;
ishift
-=
8
;
if
(
isnonalpha
(
c
))
if
(
isnonalpha
(
c
)
!=
0
)
{
buffer
[
iout
++
]
=
PNG_LITERAL_LEFT_SQUARE_BRACKET
;
buffer
[
iout
++
]
=
png_digit
[(
c
&
0xf0
)
>>
4
];
...
...
@@ -514,7 +514,7 @@ void PNGAPI
png_chunk_benign_error
(
png_const_structrp
png_ptr
,
png_const_charp
error_message
)
{
if
(
png_ptr
->
flags
&
PNG_FLAG_BENIGN_ERRORS_WARN
)
if
(
(
png_ptr
->
flags
&
PNG_FLAG_BENIGN_ERRORS_WARN
)
!=
0
)
png_chunk_warning
(
png_ptr
,
error_message
);
else
...
...
@@ -538,7 +538,7 @@ png_chunk_report(png_const_structrp png_ptr, png_const_charp message, int error)
* unconditionally does the right thing.
*/
# if defined(PNG_READ_SUPPORTED) && defined(PNG_WRITE_SUPPORTED)
if
(
png_ptr
->
mode
&
PNG_IS_READ_STRUCT
)
if
(
(
png_ptr
->
mode
&
PNG_IS_READ_STRUCT
)
!=
0
)
# endif
# ifdef PNG_READ_SUPPORTED
...
...
@@ -552,7 +552,7 @@ png_chunk_report(png_const_structrp png_ptr, png_const_charp message, int error)
# endif
# if defined(PNG_READ_SUPPORTED) && defined(PNG_WRITE_SUPPORTED)
else
if
(
!
(
png_ptr
->
mode
&
PNG_IS_READ_STRUCT
)
)
else
if
(
(
png_ptr
->
mode
&
PNG_IS_READ_STRUCT
)
==
0
)
# endif
# ifdef PNG_WRITE_SUPPORTED
...
...
@@ -577,11 +577,12 @@ png_fixed_error,(png_const_structrp png_ptr, png_const_charp name),PNG_NORETURN)
char
msg
[
fixed_message_ln
+
PNG_MAX_ERROR_TEXT
];
memcpy
(
msg
,
fixed_message
,
fixed_message_ln
);
iin
=
0
;
if
(
name
!=
NULL
)
while
(
iin
<
(
PNG_MAX_ERROR_TEXT
-
1
)
&&
name
[
iin
]
!=
0
)
{
msg
[
fixed_message_ln
+
iin
]
=
name
[
iin
];
++
iin
;
}
if
(
name
!=
NULL
)
while
(
iin
<
(
PNG_MAX_ERROR_TEXT
-
1
)
&&
name
[
iin
]
!=
0
)
{
msg
[
fixed_message_ln
+
iin
]
=
name
[
iin
];
++
iin
;
}
msg
[
fixed_message_ln
+
iin
]
=
0
;
png_error
(
png_ptr
,
msg
);
}
...
...
@@ -757,7 +758,8 @@ PNG_FUNCTION(void,PNGAPI
png_longjmp
,(
png_const_structrp
png_ptr
,
int
val
),
PNG_NORETURN
)
{
#ifdef PNG_SETJMP_SUPPORTED
if
(
png_ptr
&&
png_ptr
->
longjmp_fn
&&
png_ptr
->
jmp_buf_ptr
)
if
(
png_ptr
!=
NULL
&&
png_ptr
->
longjmp_fn
!=
NULL
&&
png_ptr
->
jmp_buf_ptr
!=
NULL
)
png_ptr
->
longjmp_fn
(
*
png_ptr
->
jmp_buf_ptr
,
val
);
#else
PNG_UNUSED
(
png_ptr
)
...
...
pngget.c
浏览文件 @
5d713fe1
/* pngget.c - retrieval of values from info struct
*
* Last changed in libpng 1.6.1
1 [June 5, 2014
]
* Last changed in libpng 1.6.1
5 [(PENDING RELEASE)
]
* Copyright (c) 1998-2014 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.)
...
...
@@ -116,7 +116,8 @@ png_get_x_pixels_per_meter(png_const_structrp png_ptr, png_const_inforp
info_ptr
)
{
#ifdef PNG_pHYs_SUPPORTED
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_pHYs
))
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_pHYs
)
!=
0
)
{
png_debug1
(
1
,
"in %s retrieval function"
,
"png_get_x_pixels_per_meter"
);
...
...
@@ -137,7 +138,8 @@ png_get_y_pixels_per_meter(png_const_structrp png_ptr, png_const_inforp
info_ptr
)
{
#ifdef PNG_pHYs_SUPPORTED
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_pHYs
))
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_pHYs
)
!=
0
)
{
png_debug1
(
1
,
"in %s retrieval function"
,
"png_get_y_pixels_per_meter"
);
...
...
@@ -157,7 +159,8 @@ png_uint_32 PNGAPI
png_get_pixels_per_meter
(
png_const_structrp
png_ptr
,
png_const_inforp
info_ptr
)
{
#ifdef PNG_pHYs_SUPPORTED
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_pHYs
))
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_pHYs
)
!=
0
)
{
png_debug1
(
1
,
"in %s retrieval function"
,
"png_get_pixels_per_meter"
);
...
...
@@ -202,10 +205,11 @@ png_get_pixel_aspect_ratio_fixed(png_const_structrp png_ptr,
png_const_inforp
info_ptr
)
{
#ifdef PNG_READ_pHYs_SUPPORTED
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_pHYs
)
&&
info_ptr
->
x_pixels_per_unit
>
0
&&
info_ptr
->
y_pixels_per_unit
>
0
&&
info_ptr
->
x_pixels_per_unit
<=
PNG_UINT_31_MAX
&&
info_ptr
->
y_pixels_per_unit
<=
PNG_UINT_31_MAX
)
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_pHYs
)
!=
0
&&
info_ptr
->
x_pixels_per_unit
>
0
&&
info_ptr
->
y_pixels_per_unit
>
0
&&
info_ptr
->
x_pixels_per_unit
<=
PNG_UINT_31_MAX
&&
info_ptr
->
y_pixels_per_unit
<=
PNG_UINT_31_MAX
)
{
png_fixed_point
res
;
...
...
@@ -215,7 +219,7 @@ png_get_pixel_aspect_ratio_fixed(png_const_structrp png_ptr,
* range of 0..2^31-1; otherwise the cast might overflow.
*/
if
(
png_muldiv
(
&
res
,
(
png_int_32
)
info_ptr
->
y_pixels_per_unit
,
PNG_FP_1
,
(
png_int_32
)
info_ptr
->
x_pixels_per_unit
))
(
png_int_32
)
info_ptr
->
x_pixels_per_unit
)
!=
0
)
return
res
;
}
#else
...
...
@@ -231,7 +235,8 @@ png_int_32 PNGAPI
png_get_x_offset_microns
(
png_const_structrp
png_ptr
,
png_const_inforp
info_ptr
)
{
#ifdef PNG_oFFs_SUPPORTED
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_oFFs
))
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_oFFs
)
!=
0
)
{
png_debug1
(
1
,
"in %s retrieval function"
,
"png_get_x_offset_microns"
);
...
...
@@ -250,7 +255,8 @@ png_int_32 PNGAPI
png_get_y_offset_microns
(
png_const_structrp
png_ptr
,
png_const_inforp
info_ptr
)
{
#ifdef PNG_oFFs_SUPPORTED
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_oFFs
))
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_oFFs
)
!=
0
)
{
png_debug1
(
1
,
"in %s retrieval function"
,
"png_get_y_offset_microns"
);
...
...
@@ -269,7 +275,8 @@ png_int_32 PNGAPI
png_get_x_offset_pixels
(
png_const_structrp
png_ptr
,
png_const_inforp
info_ptr
)
{
#ifdef PNG_oFFs_SUPPORTED
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_oFFs
))
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_oFFs
)
!=
0
)
{
png_debug1
(
1
,
"in %s retrieval function"
,
"png_get_x_offset_pixels"
);
...
...
@@ -288,7 +295,8 @@ png_int_32 PNGAPI
png_get_y_offset_pixels
(
png_const_structrp
png_ptr
,
png_const_inforp
info_ptr
)
{
#ifdef PNG_oFFs_SUPPORTED
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_oFFs
))
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_oFFs
)
!=
0
)
{
png_debug1
(
1
,
"in %s retrieval function"
,
"png_get_y_offset_pixels"
);
...
...
@@ -328,7 +336,7 @@ ppi_from_ppm(png_uint_32 ppm)
*/
png_fixed_point
result
;
if
(
ppm
<=
PNG_UINT_31_MAX
&&
png_muldiv
(
&
result
,
(
png_int_32
)
ppm
,
127
,
5000
))
5000
)
!=
0
)
return
result
;
/* Overflow. */
...
...
@@ -414,7 +422,8 @@ png_get_pHYs_dpi(png_const_structrp png_ptr, png_const_inforp info_ptr,
{
png_uint_32
retval
=
0
;
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_pHYs
))
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_pHYs
)
!=
0
)
{
png_debug1
(
1
,
"in %s retrieval function"
,
"pHYs"
);
...
...
@@ -478,8 +487,9 @@ png_uint_32 PNGAPI
png_get_bKGD
(
png_const_structrp
png_ptr
,
png_inforp
info_ptr
,
png_color_16p
*
background
)
{
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_bKGD
)
&&
background
!=
NULL
)
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_bKGD
)
!=
0
&&
background
!=
NULL
)
{
png_debug1
(
1
,
"in %s retrieval function"
,
"bKGD"
);
...
...
@@ -509,7 +519,7 @@ png_get_cHRM(png_const_structrp png_ptr, png_const_inforp info_ptr,
* consistent.
*/
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
colorspace
.
flags
&
PNG_COLORSPACE_HAVE_ENDPOINTS
))
(
info_ptr
->
colorspace
.
flags
&
PNG_COLORSPACE_HAVE_ENDPOINTS
)
!=
0
)
{
png_debug1
(
1
,
"in %s retrieval function"
,
"cHRM"
);
...
...
@@ -550,7 +560,7 @@ png_get_cHRM_XYZ(png_const_structrp png_ptr, png_const_inforp info_ptr,
double
*
blue_Z
)
{
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
colorspace
.
flags
&
PNG_COLORSPACE_HAVE_ENDPOINTS
))
(
info_ptr
->
colorspace
.
flags
&
PNG_COLORSPACE_HAVE_ENDPOINTS
)
!=
0
)
{
png_debug1
(
1
,
"in %s retrieval function"
,
"cHRM_XYZ(float)"
);
...
...
@@ -598,7 +608,7 @@ png_get_cHRM_XYZ_fixed(png_const_structrp png_ptr, png_const_inforp info_ptr,
png_fixed_point
*
int_blue_Z
)
{
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
colorspace
.
flags
&
PNG_COLORSPACE_HAVE_ENDPOINTS
))
(
info_ptr
->
colorspace
.
flags
&
PNG_COLORSPACE_HAVE_ENDPOINTS
)
!=
0
)
{
png_debug1
(
1
,
"in %s retrieval function"
,
"cHRM_XYZ"
);
...
...
@@ -635,7 +645,7 @@ png_get_cHRM_fixed(png_const_structrp png_ptr, png_const_inforp info_ptr,
png_debug1
(
1
,
"in %s retrieval function"
,
"cHRM"
);
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
colorspace
.
flags
&
PNG_COLORSPACE_HAVE_ENDPOINTS
))
(
info_ptr
->
colorspace
.
flags
&
PNG_COLORSPACE_HAVE_ENDPOINTS
)
!=
0
)
{
if
(
white_x
!=
NULL
)
*
white_x
=
info_ptr
->
colorspace
.
end_points_xy
.
whitex
;
...
...
@@ -670,7 +680,7 @@ png_get_gAMA_fixed(png_const_structrp png_ptr, png_const_inforp info_ptr,
png_debug1
(
1
,
"in %s retrieval function"
,
"gAMA"
);
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
colorspace
.
flags
&
PNG_COLORSPACE_HAVE_GAMMA
)
&&
(
info_ptr
->
colorspace
.
flags
&
PNG_COLORSPACE_HAVE_GAMMA
)
!=
0
&&
file_gamma
!=
NULL
)
{
*
file_gamma
=
info_ptr
->
colorspace
.
gamma
;
...
...
@@ -689,7 +699,7 @@ png_get_gAMA(png_const_structrp png_ptr, png_const_inforp info_ptr,
png_debug1
(
1
,
"in %s retrieval function"
,
"gAMA(float)"
);
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
colorspace
.
flags
&
PNG_COLORSPACE_HAVE_GAMMA
)
&&
(
info_ptr
->
colorspace
.
flags
&
PNG_COLORSPACE_HAVE_GAMMA
)
!=
0
&&
file_gamma
!=
NULL
)
{
*
file_gamma
=
png_float
(
png_ptr
,
info_ptr
->
colorspace
.
gamma
,
...
...
@@ -709,8 +719,8 @@ png_get_sRGB(png_const_structrp png_ptr, png_const_inforp info_ptr,
{
png_debug1
(
1
,
"in %s retrieval function"
,
"sRGB"
);
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_sRGB
)
&&
file_srgb_intent
!=
NULL
)
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_sRGB
)
!=
0
&&
file_srgb_intent
!=
NULL
)
{
*
file_srgb_intent
=
info_ptr
->
colorspace
.
rendering_intent
;
return
(
PNG_INFO_sRGB
);
...
...
@@ -728,9 +738,10 @@ png_get_iCCP(png_const_structrp png_ptr, png_inforp info_ptr,
{
png_debug1
(
1
,
"in %s retrieval function"
,
"iCCP"
);
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_iCCP
)
&&
name
!=
NULL
&&
compression_type
!=
NULL
&&
profile
!=
NULL
&&
proflen
!=
NULL
)
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_iCCP
)
!=
0
&&
name
!=
NULL
&&
compression_type
!=
NULL
&&
profile
!=
NULL
&&
proflen
!=
NULL
)
{
*
name
=
info_ptr
->
iccp_name
;
*
profile
=
info_ptr
->
iccp_profile
;
...
...
@@ -768,8 +779,8 @@ png_get_hIST(png_const_structrp png_ptr, png_inforp info_ptr,
{
png_debug1
(
1
,
"in %s retrieval function"
,
"hIST"
);
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_hIST
)
&&
hist
!=
NULL
)
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_hIST
)
!=
0
&&
hist
!=
NULL
)
{
*
hist
=
info_ptr
->
hist
;
return
(
PNG_INFO_hIST
);
...
...
@@ -824,8 +835,9 @@ png_get_oFFs(png_const_structrp png_ptr, png_const_inforp info_ptr,
{
png_debug1
(
1
,
"in %s retrieval function"
,
"oFFs"
);
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_oFFs
)
&&
offset_x
!=
NULL
&&
offset_y
!=
NULL
&&
unit_type
!=
NULL
)
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_oFFs
)
!=
0
&&
offset_x
!=
NULL
&&
offset_y
!=
NULL
&&
unit_type
!=
NULL
)
{
*
offset_x
=
info_ptr
->
x_offset
;
*
offset_y
=
info_ptr
->
y_offset
;
...
...
@@ -845,8 +857,9 @@ png_get_pCAL(png_const_structrp png_ptr, png_inforp info_ptr,
{
png_debug1
(
1
,
"in %s retrieval function"
,
"pCAL"
);
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_pCAL
)
&&
purpose
!=
NULL
&&
X0
!=
NULL
&&
X1
!=
NULL
&&
type
!=
NULL
&&
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_pCAL
)
!=
0
&&
purpose
!=
NULL
&&
X0
!=
NULL
&&
X1
!=
NULL
&&
type
!=
NULL
&&
nparams
!=
NULL
&&
units
!=
NULL
&&
params
!=
NULL
)
{
*
purpose
=
info_ptr
->
pcal_purpose
;
...
...
@@ -872,7 +885,7 @@ png_get_sCAL_fixed(png_const_structrp png_ptr, png_const_inforp info_ptr,
int
*
unit
,
png_fixed_point
*
width
,
png_fixed_point
*
height
)
{
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_sCAL
))
(
info_ptr
->
valid
&
PNG_INFO_sCAL
)
!=
0
)
{
*
unit
=
info_ptr
->
scal_unit
;
/*TODO: make this work without FP support; the API is currently eliminated
...
...
@@ -895,7 +908,7 @@ png_get_sCAL(png_const_structrp png_ptr, png_const_inforp info_ptr,
int
*
unit
,
double
*
width
,
double
*
height
)
{
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_sCAL
))
(
info_ptr
->
valid
&
PNG_INFO_sCAL
)
!=
0
)
{
*
unit
=
info_ptr
->
scal_unit
;
*
width
=
atof
(
info_ptr
->
scal_s_width
);
...
...
@@ -911,7 +924,7 @@ png_get_sCAL_s(png_const_structrp png_ptr, png_const_inforp info_ptr,
int
*
unit
,
png_charpp
width
,
png_charpp
height
)
{
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_sCAL
))
(
info_ptr
->
valid
&
PNG_INFO_sCAL
)
!=
0
)
{
*
unit
=
info_ptr
->
scal_unit
;
*
width
=
info_ptr
->
scal_s_width
;
...
...
@@ -933,7 +946,7 @@ png_get_pHYs(png_const_structrp png_ptr, png_const_inforp info_ptr,
png_debug1
(
1
,
"in %s retrieval function"
,
"pHYs"
);
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_pHYs
))
(
info_ptr
->
valid
&
PNG_INFO_pHYs
)
!=
0
)
{
if
(
res_x
!=
NULL
)
{
...
...
@@ -964,8 +977,8 @@ png_get_PLTE(png_const_structrp png_ptr, png_inforp info_ptr,
{
png_debug1
(
1
,
"in %s retrieval function"
,
"PLTE"
);
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_PLTE
)
&&
palette
!=
NULL
)
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_PLTE
)
!=
0
&&
palette
!=
NULL
)
{
*
palette
=
info_ptr
->
palette
;
*
num_palette
=
info_ptr
->
num_palette
;
...
...
@@ -983,8 +996,8 @@ png_get_sBIT(png_const_structrp png_ptr, png_inforp info_ptr,
{
png_debug1
(
1
,
"in %s retrieval function"
,
"sBIT"
);
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_sBIT
)
&&
sig_bit
!=
NULL
)
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_sBIT
)
!=
0
&&
sig_bit
!=
NULL
)
{
*
sig_bit
=
&
(
info_ptr
->
sig_bit
);
return
(
PNG_INFO_sBIT
);
...
...
@@ -1027,8 +1040,8 @@ png_get_tIME(png_const_structrp png_ptr, png_inforp info_ptr,
{
png_debug1
(
1
,
"in %s retrieval function"
,
"tIME"
);
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_tIME
)
&&
mod_time
!=
NULL
)
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_tIME
)
!=
0
&&
mod_time
!=
NULL
)
{
*
mod_time
=
&
(
info_ptr
->
mod_time
);
return
(
PNG_INFO_tIME
);
...
...
@@ -1044,7 +1057,8 @@ png_get_tRNS(png_const_structrp png_ptr, png_inforp info_ptr,
png_bytep
*
trans_alpha
,
int
*
num_trans
,
png_color_16p
*
trans_color
)
{
png_uint_32
retval
=
0
;
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_tRNS
))
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
&&
(
info_ptr
->
valid
&
PNG_INFO_tRNS
)
!=
0
)
{
png_debug1
(
1
,
"in %s retrieval function"
,
"tRNS"
);
...
...
@@ -1121,7 +1135,7 @@ png_get_compression_buffer_size(png_const_structrp png_ptr)
return
0
;
# ifdef PNG_WRITE_SUPPORTED
if
(
png_ptr
->
mode
&
PNG_IS_READ_STRUCT
)
if
(
(
png_ptr
->
mode
&
PNG_IS_READ_STRUCT
)
!=
0
)
# endif
{
# ifdef PNG_SEQUENTIAL_READ_SUPPORTED
...
...
pngpread.c
浏览文件 @
5d713fe1
...
...
@@ -202,7 +202,7 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
* sure we have enough data in the buffer for the 4-byte CRC at the
* end of every chunk (except IDAT, which is handled separately).
*/
if
(
!
(
png_ptr
->
mode
&
PNG_HAVE_CHUNK_HEADER
)
)
if
(
(
png_ptr
->
mode
&
PNG_HAVE_CHUNK_HEADER
)
==
0
)
{
png_byte
chunk_length
[
4
];
png_byte
chunk_tag
[
4
];
...
...
@@ -221,14 +221,14 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
if
(
chunk_name
==
png_IDAT
)
{
if
(
png_ptr
->
mode
&
PNG_AFTER_IDAT
)
if
(
(
png_ptr
->
mode
&
PNG_AFTER_IDAT
)
!=
0
)
png_ptr
->
mode
|=
PNG_HAVE_CHUNK_AFTER_IDAT
;
/* If we reach an IDAT chunk, this means we have read all of the
* header chunks, and we can start reading the image (or if this
* is called after the image has been read - we have an error).
*/
if
(
!
(
png_ptr
->
mode
&
PNG_HAVE_IHDR
)
)
if
(
(
png_ptr
->
mode
&
PNG_HAVE_IHDR
)
==
0
)
png_error
(
png_ptr
,
"Missing IHDR before IDAT"
);
else
if
(
png_ptr
->
color_type
==
PNG_COLOR_TYPE_PALETTE
&&
...
...
@@ -238,11 +238,11 @@ png_push_read_chunk(png_structrp png_ptr, png_inforp info_ptr)
png_ptr
->
mode
|=
PNG_HAVE_IDAT
;
png_ptr
->
process_mode
=
PNG_READ_IDAT_MODE
;
if
(
!
(
png_ptr
->
mode
&
PNG_HAVE_CHUNK_AFTER_IDAT
)
)
if
(
(
png_ptr
->
mode
&
PNG_HAVE_CHUNK_AFTER_IDAT
)
==
0
)
if
(
png_ptr
->
push_length
==
0
)
return
;
if
(
png_ptr
->
mode
&
PNG_AFTER_IDAT
)
if
(
(
png_ptr
->
mode
&
PNG_AFTER_IDAT
)
!=
0
)
png_benign_error
(
png_ptr
,
"Too many IDATs found"
);
}
...
...
@@ -449,7 +449,7 @@ png_push_crc_skip(png_structrp png_ptr, png_uint_32 skip)
void
/* PRIVATE */
png_push_crc_finish
(
png_structrp
png_ptr
)
{
if
(
png_ptr
->
skip_length
&&
png_ptr
->
save_buffer_size
)
if
(
png_ptr
->
skip_length
!=
0
&&
png_ptr
->
save_buffer_size
!=
0
)
{
png_size_t
save_size
=
png_ptr
->
save_buffer_size
;
png_uint_32
skip_length
=
png_ptr
->
skip_length
;
...
...
@@ -473,7 +473,7 @@ png_push_crc_finish(png_structrp png_ptr)
png_ptr
->
save_buffer_size
-=
save_size
;
png_ptr
->
save_buffer_ptr
+=
save_size
;
}
if
(
png_ptr
->
skip_length
&&
png_ptr
->
current_buffer_size
)
if
(
png_ptr
->
skip_length
!=
0
&&
png_ptr
->
current_buffer_size
!=
0
)
{
png_size_t
save_size
=
png_ptr
->
current_buffer_size
;
png_uint_32
skip_length
=
png_ptr
->
skip_length
;
...
...
@@ -494,7 +494,7 @@ png_push_crc_finish(png_structrp png_ptr)
png_ptr
->
current_buffer_size
-=
save_size
;
png_ptr
->
current_buffer_ptr
+=
save_size
;
}
if
(
!
png_ptr
->
skip_length
)
if
(
png_ptr
->
skip_length
==
0
)
{
PNG_PUSH_SAVE_BUFFER_IF_LT
(
4
)
png_crc_finish
(
png_ptr
,
0
);
...
...
@@ -511,7 +511,7 @@ png_push_fill_buffer(png_structp png_ptr, png_bytep buffer, png_size_t length)
return
;
ptr
=
buffer
;
if
(
png_ptr
->
save_buffer_size
)
if
(
png_ptr
->
save_buffer_size
!=
0
)
{
png_size_t
save_size
;
...
...
@@ -528,7 +528,7 @@ png_push_fill_buffer(png_structp png_ptr, png_bytep buffer, png_size_t length)
png_ptr
->
save_buffer_size
-=
save_size
;
png_ptr
->
save_buffer_ptr
+=
save_size
;
}
if
(
length
&&
png_ptr
->
current_buffer_size
)
if
(
length
!=
0
&&
png_ptr
->
current_buffer_size
!=
0
)
{
png_size_t
save_size
;
...
...
@@ -548,7 +548,7 @@ png_push_fill_buffer(png_structp png_ptr, png_bytep buffer, png_size_t length)
void
/* PRIVATE */
png_push_save_buffer
(
png_structrp
png_ptr
)
{
if
(
png_ptr
->
save_buffer_size
)
if
(
png_ptr
->
save_buffer_size
!=
0
)
{
if
(
png_ptr
->
save_buffer_ptr
!=
png_ptr
->
save_buffer
)
{
...
...
@@ -617,7 +617,7 @@ png_push_restore_buffer(png_structrp png_ptr, png_bytep buffer,
void
/* PRIVATE */
png_push_read_IDAT
(
png_structrp
png_ptr
)
{
if
(
!
(
png_ptr
->
mode
&
PNG_HAVE_CHUNK_HEADER
)
)
if
(
(
png_ptr
->
mode
&
PNG_HAVE_CHUNK_HEADER
)
==
0
)
{
png_byte
chunk_length
[
4
];
png_byte
chunk_tag
[
4
];
...
...
@@ -635,7 +635,7 @@ png_push_read_IDAT(png_structrp png_ptr)
{
png_ptr
->
process_mode
=
PNG_READ_CHUNK_MODE
;
if
(
!
(
png_ptr
->
flags
&
PNG_FLAG_ZSTREAM_ENDED
)
)
if
(
(
png_ptr
->
flags
&
PNG_FLAG_ZSTREAM_ENDED
)
==
0
)
png_error
(
png_ptr
,
"Not enough compressed data"
);
return
;
...
...
@@ -644,7 +644,7 @@ png_push_read_IDAT(png_structrp png_ptr)
png_ptr
->
idat_size
=
png_ptr
->
push_length
;
}
if
(
png_ptr
->
idat_size
&&
png_ptr
->
save_buffer_size
)
if
(
png_ptr
->
idat_size
!=
0
&&
png_ptr
->
save_buffer_size
!=
0
)
{
png_size_t
save_size
=
png_ptr
->
save_buffer_size
;
png_uint_32
idat_size
=
png_ptr
->
idat_size
;
...
...
@@ -671,7 +671,7 @@ png_push_read_IDAT(png_structrp png_ptr)
png_ptr
->
save_buffer_ptr
+=
save_size
;
}
if
(
png_ptr
->
idat_size
&&
png_ptr
->
current_buffer_size
)
if
(
png_ptr
->
idat_size
!=
0
&&
png_ptr
->
current_buffer_size
!=
0
)
{
png_size_t
save_size
=
png_ptr
->
current_buffer_size
;
png_uint_32
idat_size
=
png_ptr
->
idat_size
;
...
...
@@ -696,7 +696,7 @@ png_push_read_IDAT(png_structrp png_ptr)
png_ptr
->
current_buffer_size
-=
save_size
;
png_ptr
->
current_buffer_ptr
+=
save_size
;
}
if
(
!
png_ptr
->
idat_size
)
if
(
png_ptr
->
idat_size
==
0
)
{
PNG_PUSH_SAVE_BUFFER_IF_LT
(
4
)
png_crc_finish
(
png_ptr
,
0
);
...
...
@@ -843,7 +843,7 @@ png_push_process_row(png_structrp png_ptr)
memcpy
(
png_ptr
->
prev_row
,
png_ptr
->
row_buf
,
row_info
.
rowbytes
+
1
);
#ifdef PNG_READ_TRANSFORMS_SUPPORTED
if
(
png_ptr
->
transformations
)
if
(
png_ptr
->
transformations
!=
0
)
png_do_read_transformations
(
png_ptr
,
&
row_info
);
#endif
...
...
@@ -861,7 +861,8 @@ png_push_process_row(png_structrp png_ptr)
#ifdef PNG_READ_INTERLACING_SUPPORTED
/* Expand interlaced rows to full size */
if
(
png_ptr
->
interlaced
&&
(
png_ptr
->
transformations
&
PNG_INTERLACE
))
if
(
png_ptr
->
interlaced
!=
0
&&
(
png_ptr
->
transformations
&
PNG_INTERLACE
)
!=
0
)
{
if
(
png_ptr
->
pass
<
6
)
png_do_read_interlace
(
&
row_info
,
png_ptr
->
row_buf
+
1
,
png_ptr
->
pass
,
...
...
@@ -1068,7 +1069,7 @@ png_read_push_finish_row(png_structrp png_ptr)
if
(
png_ptr
->
row_number
<
png_ptr
->
num_rows
)
return
;
if
(
png_ptr
->
interlaced
)
if
(
png_ptr
->
interlaced
!=
0
)
{
png_ptr
->
row_number
=
0
;
memset
(
png_ptr
->
prev_row
,
0
,
png_ptr
->
rowbytes
+
1
);
...
...
@@ -1092,7 +1093,7 @@ png_read_push_finish_row(png_structrp png_ptr)
png_pass_start
[
png_ptr
->
pass
])
/
png_pass_inc
[
png_ptr
->
pass
];
if
(
png_ptr
->
transformations
&
PNG_INTERLACE
)
if
(
(
png_ptr
->
transformations
&
PNG_INTERLACE
)
!=
0
)
break
;
png_ptr
->
num_rows
=
(
png_ptr
->
height
+
...
...
pngread.c
浏览文件 @
5d713fe1
此差异已折叠。
点击以展开。
pngrtran.c
浏览文件 @
5d713fe1
此差异已折叠。
点击以展开。
pngrutil.c
浏览文件 @
5d713fe1
此差异已折叠。
点击以展开。
pngset.c
浏览文件 @
5d713fe1
/* pngset.c - storage of image information into info struct
*
* Last changed in libpng 1.6.1
1 [June 5, 2014
]
* Last changed in libpng 1.6.1
5 [(PENDING RELEASE)
]
* Copyright (c) 1998-2014 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.)
...
...
@@ -59,7 +59,7 @@ png_set_cHRM_fixed(png_const_structrp png_ptr, png_inforp info_ptr,
xy
.
whitey
=
white_y
;
if
(
png_colorspace_set_chromaticities
(
png_ptr
,
&
info_ptr
->
colorspace
,
&
xy
,
2
/* override with app values*/
)
)
2
/* override with app values*/
)
!=
0
)
info_ptr
->
colorspace
.
flags
|=
PNG_COLORSPACE_FROM_cHRM
;
png_colorspace_sync_info
(
png_ptr
,
info_ptr
);
...
...
@@ -90,7 +90,8 @@ png_set_cHRM_XYZ_fixed(png_const_structrp png_ptr, png_inforp info_ptr,
XYZ
.
blue_Y
=
int_blue_Y
;
XYZ
.
blue_Z
=
int_blue_Z
;
if
(
png_colorspace_set_endpoints
(
png_ptr
,
&
info_ptr
->
colorspace
,
&
XYZ
,
2
))
if
(
png_colorspace_set_endpoints
(
png_ptr
,
&
info_ptr
->
colorspace
,
&
XYZ
,
2
)
!=
0
)
info_ptr
->
colorspace
.
flags
|=
PNG_COLORSPACE_FROM_cHRM
;
png_colorspace_sync_info
(
png_ptr
,
info_ptr
);
...
...
@@ -227,13 +228,13 @@ png_set_IHDR(png_const_structrp png_ptr, png_inforp info_ptr,
if
(
info_ptr
->
color_type
==
PNG_COLOR_TYPE_PALETTE
)
info_ptr
->
channels
=
1
;
else
if
(
info_ptr
->
color_type
&
PNG_COLOR_MASK_COLOR
)
else
if
(
(
info_ptr
->
color_type
&
PNG_COLOR_MASK_COLOR
)
!=
0
)
info_ptr
->
channels
=
3
;
else
info_ptr
->
channels
=
1
;
if
(
info_ptr
->
color_type
&
PNG_COLOR_MASK_ALPHA
)
if
(
(
info_ptr
->
color_type
&
PNG_COLOR_MASK_ALPHA
)
!=
0
)
info_ptr
->
channels
++
;
info_ptr
->
pixel_depth
=
(
png_byte
)(
info_ptr
->
channels
*
info_ptr
->
bit_depth
);
...
...
@@ -288,12 +289,14 @@ png_set_pCAL(png_const_structrp png_ptr, png_inforp info_ptr,
/* Validate params[nparams] */
for
(
i
=
0
;
i
<
nparams
;
++
i
)
{
if
(
params
[
i
]
==
NULL
||
!
png_check_fp_string
(
params
[
i
],
strlen
(
params
[
i
])))
!
png_check_fp_string
(
params
[
i
],
strlen
(
params
[
i
])))
png_error
(
png_ptr
,
"Invalid format for pCAL parameter"
);
}
info_ptr
->
pcal_purpose
=
png_voidcast
(
png_charp
,
png_malloc_warn
(
png_ptr
,
length
));
png_malloc_warn
(
png_ptr
,
length
));
if
(
info_ptr
->
pcal_purpose
==
NULL
)
{
...
...
@@ -594,7 +597,8 @@ png_set_sRGB_gAMA_and_cHRM(png_const_structrp png_ptr, png_inforp info_ptr,
if
(
png_ptr
==
NULL
||
info_ptr
==
NULL
)
return
;
if
(
png_colorspace_set_sRGB
(
png_ptr
,
&
info_ptr
->
colorspace
,
srgb_intent
))
if
(
png_colorspace_set_sRGB
(
png_ptr
,
&
info_ptr
->
colorspace
,
srgb_intent
)
!=
0
)
{
/* This causes the gAMA and cHRM to be written too */
info_ptr
->
colorspace
.
flags
|=
...
...
@@ -891,7 +895,7 @@ png_set_tIME(png_const_structrp png_ptr, png_inforp info_ptr,
png_debug1
(
1
,
"in %s storage function"
,
"tIME"
);
if
(
png_ptr
==
NULL
||
info_ptr
==
NULL
||
mod_time
==
NULL
||
(
png_ptr
->
mode
&
PNG_WROTE_tIME
))
(
png_ptr
->
mode
&
PNG_WROTE_tIME
)
!=
0
)
return
;
if
(
mod_time
->
month
==
0
||
mod_time
->
month
>
12
||
...
...
@@ -1077,7 +1081,7 @@ check_location(png_const_structrp png_ptr, int location)
* change; previously the app had to use the
* png_set_unknown_chunk_location API below for each chunk.
*/
if
(
location
==
0
&&
!
(
png_ptr
->
mode
&
PNG_IS_READ_STRUCT
)
)
if
(
location
==
0
&&
(
png_ptr
->
mode
&
PNG_IS_READ_STRUCT
)
==
0
)
{
/* Write struct, so unknown chunks come from the app */
png_app_warning
(
png_ptr
,
...
...
@@ -1123,7 +1127,7 @@ png_set_unknown_chunks(png_const_structrp png_ptr,
*/
# if !defined(PNG_READ_UNKNOWN_CHUNKS_SUPPORTED) && \
defined(PNG_READ_SUPPORTED)
if
(
png_ptr
->
mode
&
PNG_IS_READ_STRUCT
)
if
(
(
png_ptr
->
mode
&
PNG_IS_READ_STRUCT
)
!=
0
)
{
png_app_error
(
png_ptr
,
"no unknown chunk support on read"
);
return
;
...
...
@@ -1131,7 +1135,7 @@ png_set_unknown_chunks(png_const_structrp png_ptr,
# endif
# if !defined(PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED) && \
defined(PNG_WRITE_SUPPORTED)
if
(
!
(
png_ptr
->
mode
&
PNG_IS_READ_STRUCT
)
)
if
(
(
png_ptr
->
mode
&
PNG_IS_READ_STRUCT
)
==
0
)
{
png_app_error
(
png_ptr
,
"no unknown chunk support on write"
);
return
;
...
...
@@ -1217,7 +1221,7 @@ png_set_unknown_chunk_location(png_const_structrp png_ptr, png_inforp info_ptr,
{
png_app_error
(
png_ptr
,
"invalid unknown chunk location"
);
/* Fake out the pre 1.6.0 behavior: */
if
((
location
&
PNG_HAVE_IDAT
))
/* undocumented! */
if
((
location
&
PNG_HAVE_IDAT
)
!=
0
)
/* undocumented! */
location
=
PNG_AFTER_IDAT
;
else
...
...
@@ -1255,10 +1259,13 @@ add_one_chunk(png_bytep list, unsigned int count, png_const_bytep add, int keep)
/* Utility function: update the 'keep' state of a chunk if it is already in
* the list, otherwise add it to the list.
*/
for
(
i
=
0
;
i
<
count
;
++
i
,
list
+=
5
)
if
(
memcmp
(
list
,
add
,
4
)
==
0
)
for
(
i
=
0
;
i
<
count
;
++
i
,
list
+=
5
)
{
list
[
4
]
=
(
png_byte
)
keep
;
return
count
;
if
(
memcmp
(
list
,
add
,
4
)
==
0
)
{
list
[
4
]
=
(
png_byte
)
keep
;
return
count
;
}
}
if
(
keep
!=
PNG_HANDLE_CHUNK_AS_DEFAULT
)
...
...
@@ -1382,12 +1389,15 @@ png_set_keep_unknown_chunks(png_structrp png_ptr, int keep,
unsigned
int
i
;
for
(
i
=
0
;
i
<
num_chunks
;
++
i
)
{
old_num_chunks
=
add_one_chunk
(
new_list
,
old_num_chunks
,
chunk_list
+
5
*
i
,
keep
);
}
/* Now remove any spurious 'default' entries. */
num_chunks
=
0
;
for
(
i
=
0
,
inlist
=
outlist
=
new_list
;
i
<
old_num_chunks
;
++
i
,
inlist
+=
5
)
{
if
(
inlist
[
4
])
{
if
(
outlist
!=
inlist
)
...
...
@@ -1395,6 +1405,7 @@ png_set_keep_unknown_chunks(png_structrp png_ptr, int keep,
outlist
+=
5
;
++
num_chunks
;
}
}
/* This means the application has removed all the specialized handling. */
if
(
num_chunks
==
0
)
...
...
@@ -1446,7 +1457,8 @@ png_set_rows(png_const_structrp png_ptr, png_inforp info_ptr,
if
(
png_ptr
==
NULL
||
info_ptr
==
NULL
)
return
;
if
(
info_ptr
->
row_pointers
&&
(
info_ptr
->
row_pointers
!=
row_pointers
))
if
(
info_ptr
->
row_pointers
!=
NULL
&&
(
info_ptr
->
row_pointers
!=
row_pointers
))
png_free_data
(
png_ptr
,
info_ptr
,
PNG_FREE_ROWS
,
0
);
info_ptr
->
row_pointers
=
row_pointers
;
...
...
@@ -1466,7 +1478,7 @@ png_set_compression_buffer_size(png_structrp png_ptr, png_size_t size)
png_error
(
png_ptr
,
"invalid compression buffer size"
);
# ifdef PNG_SEQUENTIAL_READ_SUPPORTED
if
(
png_ptr
->
mode
&
PNG_IS_READ_STRUCT
)
if
(
(
png_ptr
->
mode
&
PNG_IS_READ_STRUCT
)
!=
0
)
{
png_ptr
->
IDAT_read_size
=
(
png_uint_32
)
size
;
/* checked above */
return
;
...
...
@@ -1474,7 +1486,7 @@ png_set_compression_buffer_size(png_structrp png_ptr, png_size_t size)
# endif
# ifdef PNG_WRITE_SUPPORTED
if
(
!
(
png_ptr
->
mode
&
PNG_IS_READ_STRUCT
)
)
if
(
(
png_ptr
->
mode
&
PNG_IS_READ_STRUCT
)
==
0
)
{
if
(
png_ptr
->
zowner
!=
0
)
{
...
...
@@ -1512,7 +1524,7 @@ png_set_compression_buffer_size(png_structrp png_ptr, png_size_t size)
void
PNGAPI
png_set_invalid
(
png_const_structrp
png_ptr
,
png_inforp
info_ptr
,
int
mask
)
{
if
(
png_ptr
&&
info_ptr
)
if
(
png_ptr
!=
NULL
&&
info_ptr
!=
NULL
)
info_ptr
->
valid
&=
~
mask
;
}
...
...
pngtest.c
浏览文件 @
5d713fe1
...
...
@@ -283,7 +283,8 @@ count_zero_samples(png_structp png_ptr, png_row_infop row_info, png_bytep data)
png_uint_32
n
,
nstop
;
int
channel
;
int
color_channels
=
row_info
->
channels
;
if
(
row_info
->
color_type
>
3
)
color_channels
--
;
if
(
row_info
->
color_type
>
3
)
color_channels
--
;
for
(
n
=
0
,
nstop
=
row_info
->
width
;
n
<
nstop
;
n
++
)
{
...
...
@@ -643,7 +644,7 @@ set_location(png_structp png_ptr, struct user_chunk_data *data, int what)
{
int
location
;
if
((
data
->
location
[
0
]
&
what
)
||
(
data
->
location
[
1
]
&
what
)
)
if
((
data
->
location
[
0
]
&
what
)
!=
0
||
(
data
->
location
[
1
]
&
what
)
!=
0
)
return
0
;
/* already have one of these */
/* Find where we are (the code below zeroes info_ptr to indicate that the
...
...
@@ -652,7 +653,7 @@ set_location(png_structp png_ptr, struct user_chunk_data *data, int what)
if
(
data
->
info_ptr
==
NULL
)
/* after IDAT */
location
=
what
|
after_IDAT
;
else
if
(
png_get_valid
(
png_ptr
,
data
->
info_ptr
,
PNG_INFO_PLTE
))
else
if
(
png_get_valid
(
png_ptr
,
data
->
info_ptr
,
PNG_INFO_PLTE
)
!=
0
)
location
=
what
|
before_IDAT
;
else
...
...
@@ -699,7 +700,7 @@ read_user_chunk_callback(png_struct *png_ptr, png_unknown_chunkp chunk)
if
(
chunk
->
data
[
0
]
!=
0
&&
chunk
->
data
[
0
]
!=
1
)
return
(
-
1
);
/* Invalid mode */
if
(
set_location
(
png_ptr
,
my_user_chunk_data
,
have_sTER
))
if
(
set_location
(
png_ptr
,
my_user_chunk_data
,
have_sTER
)
!=
0
)
{
my_user_chunk_data
->
sTER_mode
=
chunk
->
data
[
0
];
return
(
1
);
...
...
@@ -718,7 +719,7 @@ read_user_chunk_callback(png_struct *png_ptr, png_unknown_chunkp chunk)
if
(
chunk
->
size
!=
9
)
return
(
-
1
);
/* Error return */
if
(
!
set_location
(
png_ptr
,
my_user_chunk_data
,
have_vpAg
)
)
if
(
set_location
(
png_ptr
,
my_user_chunk_data
,
have_vpAg
)
==
0
)
return
(
0
);
/* duplicate vpAg */
my_user_chunk_data
->
vpAg_width
=
png_get_uint_31
(
png_ptr
,
chunk
->
data
);
...
...
@@ -1049,7 +1050,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
int
interlace_type
,
compression_type
,
filter_type
;
if
(
png_get_IHDR
(
read_ptr
,
read_info_ptr
,
&
width
,
&
height
,
&
bit_depth
,
&
color_type
,
&
interlace_type
,
&
compression_type
,
&
filter_type
))
&
color_type
,
&
interlace_type
,
&
compression_type
,
&
filter_type
)
!=
0
)
{
png_set_IHDR
(
write_ptr
,
write_info_ptr
,
width
,
height
,
bit_depth
,
color_type
,
interlace_type
,
compression_type
,
filter_type
);
...
...
@@ -1082,7 +1083,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
blue_y
;
if
(
png_get_cHRM_fixed
(
read_ptr
,
read_info_ptr
,
&
white_x
,
&
white_y
,
&
red_x
,
&
red_y
,
&
green_x
,
&
green_y
,
&
blue_x
,
&
blue_y
))
&
red_x
,
&
red_y
,
&
green_x
,
&
green_y
,
&
blue_x
,
&
blue_y
)
!=
0
)
{
png_set_cHRM_fixed
(
write_ptr
,
write_info_ptr
,
white_x
,
white_y
,
red_x
,
red_y
,
green_x
,
green_y
,
blue_x
,
blue_y
);
...
...
@@ -1093,7 +1094,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
{
png_fixed_point
gamma
;
if
(
png_get_gAMA_fixed
(
read_ptr
,
read_info_ptr
,
&
gamma
))
if
(
png_get_gAMA_fixed
(
read_ptr
,
read_info_ptr
,
&
gamma
)
!=
0
)
png_set_gAMA_fixed
(
write_ptr
,
write_info_ptr
,
gamma
);
}
#endif
...
...
@@ -1105,7 +1106,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
blue_y
;
if
(
png_get_cHRM
(
read_ptr
,
read_info_ptr
,
&
white_x
,
&
white_y
,
&
red_x
,
&
red_y
,
&
green_x
,
&
green_y
,
&
blue_x
,
&
blue_y
))
&
red_y
,
&
green_x
,
&
green_y
,
&
blue_x
,
&
blue_y
)
!=
0
)
{
png_set_cHRM
(
write_ptr
,
write_info_ptr
,
white_x
,
white_y
,
red_x
,
red_y
,
green_x
,
green_y
,
blue_x
,
blue_y
);
...
...
@@ -1116,7 +1117,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
{
double
gamma
;
if
(
png_get_gAMA
(
read_ptr
,
read_info_ptr
,
&
gamma
))
if
(
png_get_gAMA
(
read_ptr
,
read_info_ptr
,
&
gamma
)
!=
0
)
png_set_gAMA
(
write_ptr
,
write_info_ptr
,
gamma
);
}
#endif
...
...
@@ -1130,7 +1131,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
int
compression_type
;
if
(
png_get_iCCP
(
read_ptr
,
read_info_ptr
,
&
name
,
&
compression_type
,
&
profile
,
&
proflen
))
&
profile
,
&
proflen
)
!=
0
)
{
png_set_iCCP
(
write_ptr
,
write_info_ptr
,
name
,
compression_type
,
profile
,
proflen
);
...
...
@@ -1141,7 +1142,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
{
int
intent
;
if
(
png_get_sRGB
(
read_ptr
,
read_info_ptr
,
&
intent
))
if
(
png_get_sRGB
(
read_ptr
,
read_info_ptr
,
&
intent
)
!=
0
)
png_set_sRGB
(
write_ptr
,
write_info_ptr
,
intent
);
}
#endif
...
...
@@ -1149,14 +1150,14 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
png_colorp
palette
;
int
num_palette
;
if
(
png_get_PLTE
(
read_ptr
,
read_info_ptr
,
&
palette
,
&
num_palette
))
if
(
png_get_PLTE
(
read_ptr
,
read_info_ptr
,
&
palette
,
&
num_palette
)
!=
0
)
png_set_PLTE
(
write_ptr
,
write_info_ptr
,
palette
,
num_palette
);
}
#ifdef PNG_bKGD_SUPPORTED
{
png_color_16p
background
;
if
(
png_get_bKGD
(
read_ptr
,
read_info_ptr
,
&
background
))
if
(
png_get_bKGD
(
read_ptr
,
read_info_ptr
,
&
background
)
!=
0
)
{
png_set_bKGD
(
write_ptr
,
write_info_ptr
,
background
);
}
...
...
@@ -1166,7 +1167,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
{
png_uint_16p
hist
;
if
(
png_get_hIST
(
read_ptr
,
read_info_ptr
,
&
hist
))
if
(
png_get_hIST
(
read_ptr
,
read_info_ptr
,
&
hist
)
!=
0
)
png_set_hIST
(
write_ptr
,
write_info_ptr
,
hist
);
}
#endif
...
...
@@ -1176,7 +1177,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
int
unit_type
;
if
(
png_get_oFFs
(
read_ptr
,
read_info_ptr
,
&
offset_x
,
&
offset_y
,
&
unit_type
))
&
unit_type
)
!=
0
)
{
png_set_oFFs
(
write_ptr
,
write_info_ptr
,
offset_x
,
offset_y
,
unit_type
);
}
...
...
@@ -1190,7 +1191,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
int
type
,
nparams
;
if
(
png_get_pCAL
(
read_ptr
,
read_info_ptr
,
&
purpose
,
&
X0
,
&
X1
,
&
type
,
&
nparams
,
&
units
,
&
params
))
&
nparams
,
&
units
,
&
params
)
!=
0
)
{
png_set_pCAL
(
write_ptr
,
write_info_ptr
,
purpose
,
X0
,
X1
,
type
,
nparams
,
units
,
params
);
...
...
@@ -1202,7 +1203,8 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
png_uint_32
res_x
,
res_y
;
int
unit_type
;
if
(
png_get_pHYs
(
read_ptr
,
read_info_ptr
,
&
res_x
,
&
res_y
,
&
unit_type
))
if
(
png_get_pHYs
(
read_ptr
,
read_info_ptr
,
&
res_x
,
&
res_y
,
&
unit_type
)
!=
0
)
png_set_pHYs
(
write_ptr
,
write_info_ptr
,
res_x
,
res_y
,
unit_type
);
}
#endif
...
...
@@ -1210,7 +1212,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
{
png_color_8p
sig_bit
;
if
(
png_get_sBIT
(
read_ptr
,
read_info_ptr
,
&
sig_bit
))
if
(
png_get_sBIT
(
read_ptr
,
read_info_ptr
,
&
sig_bit
)
!=
0
)
png_set_sBIT
(
write_ptr
,
write_info_ptr
,
sig_bit
);
}
#endif
...
...
@@ -1222,7 +1224,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
double
scal_width
,
scal_height
;
if
(
png_get_sCAL
(
read_ptr
,
read_info_ptr
,
&
unit
,
&
scal_width
,
&
scal_height
))
&
scal_height
)
!=
0
)
{
png_set_sCAL
(
write_ptr
,
write_info_ptr
,
unit
,
scal_width
,
scal_height
);
}
...
...
@@ -1234,7 +1236,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
png_charp
scal_width
,
scal_height
;
if
(
png_get_sCAL_s
(
read_ptr
,
read_info_ptr
,
&
unit
,
&
scal_width
,
&
scal_height
))
&
scal_height
)
!=
0
)
{
png_set_sCAL_s
(
write_ptr
,
write_info_ptr
,
unit
,
scal_width
,
scal_height
);
...
...
@@ -1274,11 +1276,11 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
{
png_timep
mod_time
;
if
(
png_get_tIME
(
read_ptr
,
read_info_ptr
,
&
mod_time
))
if
(
png_get_tIME
(
read_ptr
,
read_info_ptr
,
&
mod_time
)
!=
0
)
{
png_set_tIME
(
write_ptr
,
write_info_ptr
,
mod_time
);
#ifdef PNG_TIME_RFC1123_SUPPORTED
if
(
png_convert_to_rfc1123_buffer
(
tIME_string
,
mod_time
))
if
(
png_convert_to_rfc1123_buffer
(
tIME_string
,
mod_time
)
!=
0
)
tIME_string
[(
sizeof
tIME_string
)
-
1
]
=
'\0'
;
else
...
...
@@ -1299,7 +1301,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
png_color_16p
trans_color
;
if
(
png_get_tRNS
(
read_ptr
,
read_info_ptr
,
&
trans_alpha
,
&
num_trans
,
&
trans_color
))
&
trans_color
)
!=
0
)
{
int
sample_max
=
(
1
<<
bit_depth
);
/* libpng doesn't reject a tRNS chunk with out-of-range samples */
...
...
@@ -1457,11 +1459,11 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname)
{
png_timep
mod_time
;
if
(
png_get_tIME
(
read_ptr
,
end_info_ptr
,
&
mod_time
))
if
(
png_get_tIME
(
read_ptr
,
end_info_ptr
,
&
mod_time
)
!=
0
)
{
png_set_tIME
(
write_ptr
,
write_end_info_ptr
,
mod_time
);
#ifdef PNG_TIME_RFC1123_SUPPORTED
if
(
png_convert_to_rfc1123_buffer
(
tIME_string
,
mod_time
))
if
(
png_convert_to_rfc1123_buffer
(
tIME_string
,
mod_time
)
!=
0
)
tIME_string
[(
sizeof
tIME_string
)
-
1
]
=
'\0'
;
else
...
...
@@ -1824,7 +1826,7 @@ main(int argc, char *argv[])
#endif
#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
for
(
k
=
0
;
k
<
256
;
k
++
)
if
(
filters_used
[
k
])
if
(
filters_used
[
k
]
!=
0
)
fprintf
(
STDERR
,
" Filter %d was used %lu times
\n
"
,
k
,
(
unsigned
long
)
filters_used
[
k
]);
#endif
...
...
@@ -1915,7 +1917,7 @@ main(int argc, char *argv[])
#endif
#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED
for
(
k
=
0
;
k
<
256
;
k
++
)
if
(
filters_used
[
k
])
if
(
filters_used
[
k
]
!=
0
)
fprintf
(
STDERR
,
" Filter %d was used %lu times
\n
"
,
k
,
(
unsigned
long
)
filters_used
[
k
]);
#endif
...
...
pngtrans.c
浏览文件 @
5d713fe1
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
*
* Last changed in libpng 1.6.1
1 [June 5, 2014
]
* Last changed in libpng 1.6.1
5 [(PENDING RELEASE)
]
* Copyright (c) 1998-2014 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.)
...
...
@@ -100,7 +100,7 @@ png_set_interlace_handling(png_structrp png_ptr)
{
png_debug
(
1
,
"in png_set_interlace handling"
);
if
(
png_ptr
&&
png_ptr
->
interlaced
)
if
(
png_ptr
!=
0
&&
png_ptr
->
interlaced
!=
0
)
{
png_ptr
->
transformations
|=
PNG_INTERLACE
;
return
(
7
);
...
...
@@ -127,7 +127,7 @@ png_set_filler(png_structrp png_ptr, png_uint_32 filler, int filler_loc)
/* In libpng 1.6 it is possible to determine whether this is a read or write
* operation and therefore to do more checking here for a valid call.
*/
if
(
png_ptr
->
mode
&
PNG_IS_READ_STRUCT
)
if
(
(
png_ptr
->
mode
&
PNG_IS_READ_STRUCT
)
!=
0
)
{
# ifdef PNG_READ_FILLER_SUPPORTED
/* On read png_set_filler is always valid, regardless of the base PNG
...
...
@@ -210,7 +210,7 @@ png_set_add_alpha(png_structrp png_ptr, png_uint_32 filler, int filler_loc)
png_set_filler
(
png_ptr
,
filler
,
filler_loc
);
/* The above may fail to do anything. */
if
(
png_ptr
->
transformations
&
PNG_FILLER
)
if
(
(
png_ptr
->
transformations
&
PNG_FILLER
)
!=
0
)
png_ptr
->
transformations
|=
PNG_ADD_ALPHA
;
}
...
...
@@ -605,7 +605,7 @@ png_do_bgr(png_row_infop row_info, png_bytep row)
{
png_debug
(
1
,
"in png_do_bgr"
);
if
((
row_info
->
color_type
&
PNG_COLOR_MASK_COLOR
))
if
((
row_info
->
color_type
&
PNG_COLOR_MASK_COLOR
)
!=
0
)
{
png_uint_32
row_width
=
row_info
->
width
;
if
(
row_info
->
bit_depth
==
8
)
...
...
pngwrite.c
浏览文件 @
5d713fe1
此差异已折叠。
点击以展开。
pngwtran.c
浏览文件 @
5d713fe1
...
...
@@ -177,7 +177,7 @@ png_do_shift(png_row_infop row_info, png_bytep row,
int
shift_start
[
4
],
shift_dec
[
4
];
int
channels
=
0
;
if
(
row_info
->
color_type
&
PNG_COLOR_MASK_COLOR
)
if
(
(
row_info
->
color_type
&
PNG_COLOR_MASK_COLOR
)
!=
0
)
{
shift_start
[
channels
]
=
row_info
->
bit_depth
-
bit_depth
->
red
;
shift_dec
[
channels
]
=
bit_depth
->
red
;
...
...
@@ -199,7 +199,7 @@ png_do_shift(png_row_infop row_info, png_bytep row,
channels
++
;
}
if
(
row_info
->
color_type
&
PNG_COLOR_MASK_ALPHA
)
if
(
(
row_info
->
color_type
&
PNG_COLOR_MASK_ALPHA
)
!=
0
)
{
shift_start
[
channels
]
=
row_info
->
bit_depth
-
bit_depth
->
alpha
;
shift_dec
[
channels
]
=
bit_depth
->
alpha
;
...
...
@@ -505,7 +505,7 @@ png_do_write_transformations(png_structrp png_ptr, png_row_infop row_info)
return
;
#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
if
(
png_ptr
->
transformations
&
PNG_USER_TRANSFORM
)
if
(
(
png_ptr
->
transformations
&
PNG_USER_TRANSFORM
)
!=
0
)
if
(
png_ptr
->
write_user_transform_fn
!=
NULL
)
(
*
(
png_ptr
->
write_user_transform_fn
))
/* User write transform
function */
...
...
@@ -521,50 +521,50 @@ png_do_write_transformations(png_structrp png_ptr, png_row_infop row_info)
#endif
#ifdef PNG_WRITE_FILLER_SUPPORTED
if
(
png_ptr
->
transformations
&
PNG_FILLER
)
if
(
(
png_ptr
->
transformations
&
PNG_FILLER
)
!=
0
)
png_do_strip_channel
(
row_info
,
png_ptr
->
row_buf
+
1
,
!
(
png_ptr
->
flags
&
PNG_FLAG_FILLER_AFTER
));
#endif
#ifdef PNG_WRITE_PACKSWAP_SUPPORTED
if
(
png_ptr
->
transformations
&
PNG_PACKSWAP
)
if
(
(
png_ptr
->
transformations
&
PNG_PACKSWAP
)
!=
0
)
png_do_packswap
(
row_info
,
png_ptr
->
row_buf
+
1
);
#endif
#ifdef PNG_WRITE_PACK_SUPPORTED
if
(
png_ptr
->
transformations
&
PNG_PACK
)
if
(
(
png_ptr
->
transformations
&
PNG_PACK
)
!=
0
)
png_do_pack
(
row_info
,
png_ptr
->
row_buf
+
1
,
(
png_uint_32
)
png_ptr
->
bit_depth
);
#endif
#ifdef PNG_WRITE_SWAP_SUPPORTED
if
(
png_ptr
->
transformations
&
PNG_SWAP_BYTES
)
if
(
(
png_ptr
->
transformations
&
PNG_SWAP_BYTES
)
!=
0
)
png_do_swap
(
row_info
,
png_ptr
->
row_buf
+
1
);
#endif
#ifdef PNG_WRITE_SHIFT_SUPPORTED
if
(
png_ptr
->
transformations
&
PNG_SHIFT
)
if
(
(
png_ptr
->
transformations
&
PNG_SHIFT
)
!=
0
)
png_do_shift
(
row_info
,
png_ptr
->
row_buf
+
1
,
&
(
png_ptr
->
shift
));
#endif
#ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED
if
(
png_ptr
->
transformations
&
PNG_SWAP_ALPHA
)
if
(
(
png_ptr
->
transformations
&
PNG_SWAP_ALPHA
)
!=
0
)
png_do_write_swap_alpha
(
row_info
,
png_ptr
->
row_buf
+
1
);
#endif
#ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED
if
(
png_ptr
->
transformations
&
PNG_INVERT_ALPHA
)
if
(
(
png_ptr
->
transformations
&
PNG_INVERT_ALPHA
)
!=
0
)
png_do_write_invert_alpha
(
row_info
,
png_ptr
->
row_buf
+
1
);
#endif
#ifdef PNG_WRITE_BGR_SUPPORTED
if
(
png_ptr
->
transformations
&
PNG_BGR
)
if
(
(
png_ptr
->
transformations
&
PNG_BGR
)
!=
0
)
png_do_bgr
(
row_info
,
png_ptr
->
row_buf
+
1
);
#endif
#ifdef PNG_WRITE_INVERT_SUPPORTED
if
(
png_ptr
->
transformations
&
PNG_INVERT_MONO
)
if
(
(
png_ptr
->
transformations
&
PNG_INVERT_MONO
)
!=
0
)
png_do_invert
(
row_info
,
png_ptr
->
row_buf
+
1
);
#endif
}
...
...
pngwutil.c
浏览文件 @
5d713fe1
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录