316 #define PNG_LIBPNG_VER_STRING "1.6.23" 317 #define PNG_HEADER_VERSION_STRING \ 318 " libpng version 1.6.23 - June 9, 2016\n" 320 #define PNG_LIBPNG_VER_SONUM 16 321 #define PNG_LIBPNG_VER_DLLNUM 16 324 #define PNG_LIBPNG_VER_MAJOR 1 325 #define PNG_LIBPNG_VER_MINOR 6 326 #define PNG_LIBPNG_VER_RELEASE 23 332 #define PNG_LIBPNG_VER_BUILD 0 335 #define PNG_LIBPNG_BUILD_ALPHA 1 336 #define PNG_LIBPNG_BUILD_BETA 2 337 #define PNG_LIBPNG_BUILD_RC 3 338 #define PNG_LIBPNG_BUILD_STABLE 4 339 #define PNG_LIBPNG_BUILD_RELEASE_STATUS_MASK 7 342 #define PNG_LIBPNG_BUILD_PATCH 8 344 #define PNG_LIBPNG_BUILD_PRIVATE 16 346 #define PNG_LIBPNG_BUILD_SPECIAL 32 349 #define PNG_LIBPNG_BUILD_BASE_TYPE PNG_LIBPNG_BUILD_STABLE 357 #define PNG_LIBPNG_VER 10623 369 #ifndef PNG_VERSION_INFO_ONLY 388 #ifdef PNG_USER_PRIVATEBUILD 389 # define PNG_LIBPNG_BUILD_TYPE \ 390 (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_PRIVATE) 392 # ifdef PNG_LIBPNG_SPECIALBUILD 393 # define PNG_LIBPNG_BUILD_TYPE \ 394 (PNG_LIBPNG_BUILD_BASE_TYPE | PNG_LIBPNG_BUILD_SPECIAL) 396 # define PNG_LIBPNG_BUILD_TYPE (PNG_LIBPNG_BUILD_BASE_TYPE) 400 #ifndef PNG_VERSION_INFO_ONLY 410 #define png_libpng_ver png_get_header_ver(NULL) 580 #ifdef PNG_TEXT_SUPPORTED 622 #define PNG_TEXT_COMPRESSION_NONE_WR -3 623 #define PNG_TEXT_COMPRESSION_zTXt_WR -2 624 #define PNG_TEXT_COMPRESSION_NONE -1 625 #define PNG_TEXT_COMPRESSION_zTXt 0 626 #define PNG_ITXT_COMPRESSION_NONE 1 627 #define PNG_ITXT_COMPRESSION_zTXt 2 628 #define PNG_TEXT_COMPRESSION_LAST 3 649 #if defined(PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED) ||\ 650 defined(PNG_USER_CHUNKS_SUPPORTED) 680 #define PNG_HAVE_IHDR 0x01 681 #define PNG_HAVE_PLTE 0x02 682 #define PNG_AFTER_IDAT 0x08 685 #define PNG_UINT_31_MAX ((png_uint_32)0x7fffffffL) 686 #define PNG_UINT_32_MAX ((png_uint_32)(-1)) 687 #define PNG_SIZE_MAX ((png_size_t)(-1)) 692 #define PNG_FP_1 100000 693 #define PNG_FP_HALF 50000 694 #define PNG_FP_MAX ((png_fixed_point)0x7fffffffL) 695 #define PNG_FP_MIN (-PNG_FP_MAX) 699 #define PNG_COLOR_MASK_PALETTE 1 700 #define PNG_COLOR_MASK_COLOR 2 701 #define PNG_COLOR_MASK_ALPHA 4 704 #define PNG_COLOR_TYPE_GRAY 0 705 #define PNG_COLOR_TYPE_PALETTE (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_PALETTE) 706 #define PNG_COLOR_TYPE_RGB (PNG_COLOR_MASK_COLOR) 707 #define PNG_COLOR_TYPE_RGB_ALPHA (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_ALPHA) 708 #define PNG_COLOR_TYPE_GRAY_ALPHA (PNG_COLOR_MASK_ALPHA) 710 #define PNG_COLOR_TYPE_RGBA PNG_COLOR_TYPE_RGB_ALPHA 711 #define PNG_COLOR_TYPE_GA PNG_COLOR_TYPE_GRAY_ALPHA 714 #define PNG_COMPRESSION_TYPE_BASE 0 715 #define PNG_COMPRESSION_TYPE_DEFAULT PNG_COMPRESSION_TYPE_BASE 718 #define PNG_FILTER_TYPE_BASE 0 719 #define PNG_INTRAPIXEL_DIFFERENCING 64 720 #define PNG_FILTER_TYPE_DEFAULT PNG_FILTER_TYPE_BASE 723 #define PNG_INTERLACE_NONE 0 724 #define PNG_INTERLACE_ADAM7 1 725 #define PNG_INTERLACE_LAST 2 728 #define PNG_OFFSET_PIXEL 0 729 #define PNG_OFFSET_MICROMETER 1 730 #define PNG_OFFSET_LAST 2 733 #define PNG_EQUATION_LINEAR 0 734 #define PNG_EQUATION_BASE_E 1 735 #define PNG_EQUATION_ARBITRARY 2 736 #define PNG_EQUATION_HYPERBOLIC 3 737 #define PNG_EQUATION_LAST 4 740 #define PNG_SCALE_UNKNOWN 0 741 #define PNG_SCALE_METER 1 742 #define PNG_SCALE_RADIAN 2 743 #define PNG_SCALE_LAST 3 746 #define PNG_RESOLUTION_UNKNOWN 0 747 #define PNG_RESOLUTION_METER 1 748 #define PNG_RESOLUTION_LAST 2 751 #define PNG_sRGB_INTENT_PERCEPTUAL 0 752 #define PNG_sRGB_INTENT_RELATIVE 1 753 #define PNG_sRGB_INTENT_SATURATION 2 754 #define PNG_sRGB_INTENT_ABSOLUTE 3 755 #define PNG_sRGB_INTENT_LAST 4 758 #define PNG_KEYWORD_MAX_LENGTH 79 761 #define PNG_MAX_PALETTE_LENGTH 256 768 #define PNG_INFO_gAMA 0x0001U 769 #define PNG_INFO_sBIT 0x0002U 770 #define PNG_INFO_cHRM 0x0004U 771 #define PNG_INFO_PLTE 0x0008U 772 #define PNG_INFO_tRNS 0x0010U 773 #define PNG_INFO_bKGD 0x0020U 774 #define PNG_INFO_hIST 0x0040U 775 #define PNG_INFO_pHYs 0x0080U 776 #define PNG_INFO_oFFs 0x0100U 777 #define PNG_INFO_tIME 0x0200U 778 #define PNG_INFO_pCAL 0x0400U 779 #define PNG_INFO_sRGB 0x0800U 780 #define PNG_INFO_iCCP 0x1000U 781 #define PNG_INFO_sPLT 0x2000U 782 #define PNG_INFO_sCAL 0x4000U 783 #define PNG_INFO_IDAT 0x8000U 818 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED 836 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ 837 defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) 842 #ifdef PNG_USER_CHUNKS_SUPPORTED 846 #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED 851 #ifdef PNG_SETJMP_SUPPORTED 867 #define PNG_TRANSFORM_IDENTITY 0x0000 868 #define PNG_TRANSFORM_STRIP_16 0x0001 869 #define PNG_TRANSFORM_STRIP_ALPHA 0x0002 870 #define PNG_TRANSFORM_PACKING 0x0004 871 #define PNG_TRANSFORM_PACKSWAP 0x0008 872 #define PNG_TRANSFORM_EXPAND 0x0010 873 #define PNG_TRANSFORM_INVERT_MONO 0x0020 874 #define PNG_TRANSFORM_SHIFT 0x0040 875 #define PNG_TRANSFORM_BGR 0x0080 876 #define PNG_TRANSFORM_SWAP_ALPHA 0x0100 877 #define PNG_TRANSFORM_SWAP_ENDIAN 0x0200 878 #define PNG_TRANSFORM_INVERT_ALPHA 0x0400 879 #define PNG_TRANSFORM_STRIP_FILLER 0x0800 881 #define PNG_TRANSFORM_STRIP_FILLER_BEFORE PNG_TRANSFORM_STRIP_FILLER 882 #define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 884 #define PNG_TRANSFORM_GRAY_TO_RGB 0x2000 886 #define PNG_TRANSFORM_EXPAND_16 0x4000 887 #if INT_MAX >= 0x8000 888 #define PNG_TRANSFORM_SCALE_16 0x8000 892 #define PNG_FLAG_MNG_EMPTY_PLTE 0x01 893 #define PNG_FLAG_MNG_FILTER_64 0x04 894 #define PNG_ALL_MNG_FEATURES 0x05 954 #define png_check_sig(sig, n) !png_sig_cmp((sig), 0, (n)) 959 png_error_ptr error_fn, png_error_ptr warn_fn),
965 png_error_ptr warn_fn),
977 #ifdef PNG_SETJMP_SUPPORTED 986 png_longjmp_ptr longjmp_fn,
size_t jmp_buf_size));
987 # define png_jmpbuf(png_ptr) \ 988 (*png_set_longjmp_fn((png_ptr), longjmp, (sizeof (jmp_buf)))) 990 # define png_jmpbuf(png_ptr) \ 991 (LIBPNG_WAS_COMPILED_WITH__PNG_NO_SETJMP) 1001 #ifdef PNG_READ_SUPPORTED 1007 #ifdef PNG_USER_MEM_SUPPORTED 1010 png_error_ptr warn_fn,
1011 png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn),
1015 png_error_ptr warn_fn,
1016 png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn),
1050 PNG_EXPORT(20,
void, png_write_info_before_PLTE,
1055 #ifdef PNG_SEQUENTIAL_READ_SUPPORTED 1061 #ifdef PNG_TIME_RFC1123_SUPPORTED 1066 #if PNG_LIBPNG_VER < 10700 1071 PNG_EXPORT(241,
int, png_convert_to_rfc1123_buffer, (
char out[29],
1075 #ifdef PNG_CONVERT_tIME_SUPPORTED 1078 const struct tm * ttime));
1084 #ifdef PNG_READ_EXPAND_SUPPORTED 1092 #ifdef PNG_READ_EXPAND_16_SUPPORTED 1099 #if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) 1104 #ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED 1109 #ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED 1111 #define PNG_ERROR_ACTION_NONE 1 1112 #define PNG_ERROR_ACTION_WARN 2 1113 #define PNG_ERROR_ACTION_ERROR 3 1114 #define PNG_RGB_TO_GRAY_DEFAULT (-1) 1125 #ifdef PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED 1126 PNG_EXPORT(35,
void, png_build_grayscale_palette, (
int bit_depth,
1130 #ifdef PNG_READ_ALPHA_MODE_SUPPORTED 1165 #define PNG_ALPHA_PNG 0 1166 #define PNG_ALPHA_STANDARD 1 1167 #define PNG_ALPHA_ASSOCIATED 1 1168 #define PNG_ALPHA_PREMULTIPLIED 1 1169 #define PNG_ALPHA_OPTIMIZED 2 1170 #define PNG_ALPHA_BROKEN 3 1173 double output_gamma))
1178 #if defined(PNG_GAMMA_SUPPORTED) || defined(PNG_READ_ALPHA_MODE_SUPPORTED) 1182 #define PNG_DEFAULT_sRGB -1 1183 #define PNG_GAMMA_MAC_18 -2 1184 #define PNG_GAMMA_sRGB 220000 1185 #define PNG_GAMMA_LINEAR PNG_FP_1 1264 #ifdef PNG_READ_STRIP_ALPHA_SUPPORTED 1268 #if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ 1269 defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) 1273 #if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ 1274 defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) 1278 #if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) 1283 # define PNG_FILLER_BEFORE 0 1284 # define PNG_FILLER_AFTER 1 1290 #if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) 1295 #if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED) 1300 #if defined(PNG_READ_PACKSWAP_SUPPORTED) || \ 1301 defined(PNG_WRITE_PACKSWAP_SUPPORTED) 1306 #if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) 1312 #if defined(PNG_READ_INTERLACING_SUPPORTED) || \ 1313 defined(PNG_WRITE_INTERLACING_SUPPORTED) 1323 #if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) 1328 #ifdef PNG_READ_BACKGROUND_SUPPORTED 1341 #ifdef PNG_READ_BACKGROUND_SUPPORTED 1342 # define PNG_BACKGROUND_GAMMA_UNKNOWN 0 1343 # define PNG_BACKGROUND_GAMMA_SCREEN 1 1344 # define PNG_BACKGROUND_GAMMA_FILE 2 1345 # define PNG_BACKGROUND_GAMMA_UNIQUE 3 1348 #ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED 1353 #ifdef PNG_READ_STRIP_16_TO_8_SUPPORTED 1354 #define PNG_READ_16_TO_8_SUPPORTED 1359 #ifdef PNG_READ_QUANTIZE_SUPPORTED 1364 png_colorp palette,
int num_palette,
int maximum_colors,
1368 #ifdef PNG_READ_GAMMA_SUPPORTED 1372 #define PNG_GAMMA_THRESHOLD (PNG_GAMMA_THRESHOLD_FIXED*.00001) 1391 #ifdef PNG_WRITE_FLUSH_SUPPORTED 1405 #ifdef PNG_SEQUENTIAL_READ_SUPPORTED 1411 #ifdef PNG_SEQUENTIAL_READ_SUPPORTED 1417 #ifdef PNG_SEQUENTIAL_READ_SUPPORTED 1441 #ifdef PNG_SEQUENTIAL_READ_SUPPORTED 1471 #define PNG_CRC_DEFAULT 0 1472 #define PNG_CRC_ERROR_QUIT 1 1473 #define PNG_CRC_WARN_DISCARD 2 1474 #define PNG_CRC_WARN_USE 3 1475 #define PNG_CRC_QUIET_USE 4 1476 #define PNG_CRC_NO_CHANGE 5 1478 #ifdef PNG_WRITE_SUPPORTED 1499 #define PNG_NO_FILTERS 0x00 1500 #define PNG_FILTER_NONE 0x08 1501 #define PNG_FILTER_SUB 0x10 1502 #define PNG_FILTER_UP 0x20 1503 #define PNG_FILTER_AVG 0x40 1504 #define PNG_FILTER_PAETH 0x80 1505 #define PNG_FAST_FILTERS (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP) 1506 #define PNG_ALL_FILTERS (PNG_FAST_FILTERS | PNG_FILTER_AVG | PNG_FILTER_PAETH) 1511 #define PNG_FILTER_VALUE_NONE 0 1512 #define PNG_FILTER_VALUE_SUB 1 1513 #define PNG_FILTER_VALUE_UP 2 1514 #define PNG_FILTER_VALUE_AVG 3 1515 #define PNG_FILTER_VALUE_PAETH 4 1516 #define PNG_FILTER_VALUE_LAST 5 1518 #ifdef PNG_WRITE_SUPPORTED 1519 #ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED 1522 png_const_doublep filter_costs))
1530 #define PNG_FILTER_HEURISTIC_DEFAULT 0 1531 #define PNG_FILTER_HEURISTIC_UNWEIGHTED 1 1532 #define PNG_FILTER_HEURISTIC_WEIGHTED 2 1533 #define PNG_FILTER_HEURISTIC_LAST 3 1542 #ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED 1562 #ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED 1576 PNG_EXPORT(225,
void, png_set_text_compression_window_bits,
1593 #ifdef PNG_STDIO_SUPPORTED 1607 png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn));
1623 png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn));
1627 png_rw_ptr read_data_fn));
1633 png_read_status_ptr read_row_fn));
1636 png_write_status_ptr write_row_fn));
1638 #ifdef PNG_USER_MEM_SUPPORTED 1641 png_malloc_ptr malloc_fn, png_free_ptr free_fn));
1646 #ifdef PNG_READ_USER_TRANSFORM_SUPPORTED 1648 png_user_transform_ptr read_user_transform_fn));
1651 #ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED 1653 png_user_transform_ptr write_user_transform_fn));
1656 #ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED 1658 png_voidp user_transform_ptr,
int user_transform_depth,
1659 int user_transform_channels));
1665 #ifdef PNG_USER_TRANSFORM_INFO_SUPPORTED 1681 #ifdef PNG_READ_USER_CHUNKS_SUPPORTED 1702 png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn));
1705 #ifdef PNG_USER_CHUNKS_SUPPORTED 1709 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED 1714 png_voidp progressive_ptr, png_progressive_info_ptr info_fn,
1715 png_progressive_row_ptr row_fn, png_progressive_end_ptr end_fn));
1779 #define PNG_DESTROY_WILL_FREE_DATA 1 1780 #define PNG_SET_WILL_FREE_DATA 1 1781 #define PNG_USER_WILL_FREE_DATA 2 1783 #define PNG_FREE_HIST 0x0008U 1784 #define PNG_FREE_ICCP 0x0010U 1785 #define PNG_FREE_SPLT 0x0020U 1786 #define PNG_FREE_ROWS 0x0040U 1787 #define PNG_FREE_PCAL 0x0080U 1788 #define PNG_FREE_SCAL 0x0100U 1789 #ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED 1790 # define PNG_FREE_UNKN 0x0200U 1793 #define PNG_FREE_PLTE 0x1000U 1794 #define PNG_FREE_TRNS 0x2000U 1795 #define PNG_FREE_TEXT 0x4000U 1796 #define PNG_FREE_ALL 0x7fffU 1797 #define PNG_FREE_MUL 0x4220U 1799 #ifdef PNG_USER_MEM_SUPPORTED 1806 #ifdef PNG_ERROR_TEXT_SUPPORTED 1818 # define png_error(s1,s2) png_err(s1) 1819 # define png_chunk_error(s1,s2) png_err(s1) 1822 #ifdef PNG_WARNINGS_SUPPORTED 1831 # define png_warning(s1,s2) ((void)(s1)) 1832 # define png_chunk_warning(s1,s2) ((void)(s1)) 1835 #ifdef PNG_BENIGN_ERRORS_SUPPORTED 1841 #ifdef PNG_READ_SUPPORTED 1850 # ifdef PNG_ALLOW_BENIGN_ERRORS 1851 # define png_benign_error png_warning 1852 # define png_chunk_benign_error png_chunk_warning 1854 # define png_benign_error png_error 1855 # define png_chunk_benign_error png_chunk_error 1879 #ifdef PNG_INFO_IMAGE_SUPPORTED 1897 #ifdef PNG_EASY_ACCESS_SUPPORTED 1941 PNG_EXPORT(126, png_int_32, png_get_x_offset_pixels,
1943 PNG_EXPORT(127, png_int_32, png_get_y_offset_pixels,
1945 PNG_EXPORT(128, png_int_32, png_get_x_offset_microns,
1947 PNG_EXPORT(129, png_int_32, png_get_y_offset_microns,
1952 #ifdef PNG_READ_SUPPORTED 1958 #ifdef PNG_bKGD_SUPPORTED 1963 #ifdef PNG_bKGD_SUPPORTED 1968 #ifdef PNG_cHRM_SUPPORTED 1971 double *red_y,
double *green_x,
double *green_y,
double *blue_x,
1976 double *
blue_Y,
double *blue_Z))
1992 #ifdef PNG_cHRM_SUPPORTED 1995 double white_x,
double white_y,
double red_x,
double red_y,
double green_x,
1996 double green_y,
double blue_x,
double blue_y))
2000 double blue_Y,
double blue_Z))
2015 #ifdef PNG_gAMA_SUPPORTED 2023 #ifdef PNG_gAMA_SUPPORTED 2030 #ifdef PNG_hIST_SUPPORTED 2035 #ifdef PNG_hIST_SUPPORTED 2042 int *bit_depth,
int *color_type,
int *interlace_method,
2043 int *compression_method,
int *filter_method));
2047 int color_type,
int interlace_method,
int compression_method,
2048 int filter_method));
2050 #ifdef PNG_oFFs_SUPPORTED 2056 #ifdef PNG_oFFs_SUPPORTED 2062 #ifdef PNG_pCAL_SUPPORTED 2069 #ifdef PNG_pCAL_SUPPORTED 2075 #ifdef PNG_pHYs_SUPPORTED 2081 #ifdef PNG_pHYs_SUPPORTED 2092 #ifdef PNG_sBIT_SUPPORTED 2097 #ifdef PNG_sBIT_SUPPORTED 2102 #ifdef PNG_sRGB_SUPPORTED 2107 #ifdef PNG_sRGB_SUPPORTED 2114 #ifdef PNG_iCCP_SUPPORTED 2120 #ifdef PNG_iCCP_SUPPORTED 2126 #ifdef PNG_sPLT_SUPPORTED 2131 #ifdef PNG_sPLT_SUPPORTED 2136 #ifdef PNG_TEXT_SUPPORTED 2149 #ifdef PNG_TEXT_SUPPORTED 2154 #ifdef PNG_tIME_SUPPORTED 2159 #ifdef PNG_tIME_SUPPORTED 2164 #ifdef PNG_tRNS_SUPPORTED 2170 #ifdef PNG_tRNS_SUPPORTED 2176 #ifdef PNG_sCAL_SUPPORTED 2179 #if defined(PNG_FLOATING_ARITHMETIC_SUPPORTED) || \ 2180 defined(PNG_FLOATING_POINT_SUPPORTED) 2204 #ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED 2314 #ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED 2327 PNG_EXPORT(175,
void, png_set_unknown_chunk_location,
2341 #ifdef PNG_INFO_IMAGE_SUPPORTED 2343 #ifdef PNG_SEQUENTIAL_READ_SUPPORTED 2347 #ifdef PNG_WRITE_SUPPORTED 2362 #ifdef PNG_MNG_FEATURES_SUPPORTED 2368 #define PNG_HANDLE_CHUNK_AS_DEFAULT 0 2369 #define PNG_HANDLE_CHUNK_NEVER 1 2370 #define PNG_HANDLE_CHUNK_IF_SAFE 2 2371 #define PNG_HANDLE_CHUNK_ALWAYS 3 2372 #define PNG_HANDLE_CHUNK_LAST 4 2377 #ifdef PNG_ERROR_NUMBERS_SUPPORTED 2383 #ifdef PNG_SET_USER_LIMITS_SUPPORTED 2402 #if defined(PNG_INCH_CONVERSIONS_SUPPORTED) 2414 #ifdef PNG_FIXED_POINT_SUPPORTED 2421 #ifdef PNG_FIXED_POINT_SUPPORTED 2426 # ifdef PNG_pHYs_SUPPORTED 2434 #ifdef PNG_IO_STATE_SUPPORTED 2445 # define PNG_IO_NONE 0x0000 2446 # define PNG_IO_READING 0x0001 2447 # define PNG_IO_WRITING 0x0002 2448 # define PNG_IO_SIGNATURE 0x0010 2449 # define PNG_IO_CHUNK_HDR 0x0020 2450 # define PNG_IO_CHUNK_DATA 0x0040 2451 # define PNG_IO_CHUNK_CRC 0x0080 2452 # define PNG_IO_MASK_OP 0x000f 2453 # define PNG_IO_MASK_LOC 0x00f0 2460 #define PNG_INTERLACE_ADAM7_PASSES 7 2466 #define PNG_PASS_START_ROW(pass) (((1&~(pass))<<(3-((pass)>>1)))&7) 2467 #define PNG_PASS_START_COL(pass) (((1& (pass))<<(3-(((pass)+1)>>1)))&7) 2474 #define PNG_PASS_ROW_OFFSET(pass) ((pass)>2?(8>>(((pass)-1)>>1)):8) 2475 #define PNG_PASS_COL_OFFSET(pass) (1<<((7-(pass))>>1)) 2481 #define PNG_PASS_ROW_SHIFT(pass) ((pass)>2?(8-(pass))>>1:3) 2482 #define PNG_PASS_COL_SHIFT(pass) ((pass)>1?(7-(pass))>>1:3) 2489 #define PNG_PASS_ROWS(height, pass) (((height)+(((1<<PNG_PASS_ROW_SHIFT(pass))\ 2490 -1)-PNG_PASS_START_ROW(pass)))>>PNG_PASS_ROW_SHIFT(pass)) 2491 #define PNG_PASS_COLS(width, pass) (((width)+(((1<<PNG_PASS_COL_SHIFT(pass))\ 2492 -1)-PNG_PASS_START_COL(pass)))>>PNG_PASS_COL_SHIFT(pass)) 2498 #define PNG_ROW_FROM_PASS_ROW(y_in, pass) \ 2499 (((y_in)<<PNG_PASS_ROW_SHIFT(pass))+PNG_PASS_START_ROW(pass)) 2500 #define PNG_COL_FROM_PASS_COL(x_in, pass) \ 2501 (((x_in)<<PNG_PASS_COL_SHIFT(pass))+PNG_PASS_START_COL(pass)) 2509 #define PNG_PASS_MASK(pass,off) ( \ 2510 ((0x110145AF>>(((7-(off))-(pass))<<2)) & 0xF) | \ 2511 ((0x01145AF0>>(((7-(off))-(pass))<<2)) & 0xF0)) 2513 #define PNG_ROW_IN_INTERLACE_PASS(y, pass) \ 2514 ((PNG_PASS_MASK(pass,0) >> ((y)&7)) & 1) 2515 #define PNG_COL_IN_INTERLACE_PASS(x, pass) \ 2516 ((PNG_PASS_MASK(pass,1) >> ((x)&7)) & 1) 2518 #ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED 2533 # define png_composite(composite, fg, alpha, bg) \ 2534 { png_uint_16 temp = (png_uint_16)((png_uint_16)(fg) \ 2535 * (png_uint_16)(alpha) \ 2536 + (png_uint_16)(bg)*(png_uint_16)(255 \ 2537 - (png_uint_16)(alpha)) + 128); \ 2538 (composite) = (png_byte)(((temp + (temp >> 8)) >> 8) & 0xff); } 2540 # define png_composite_16(composite, fg, alpha, bg) \ 2541 { png_uint_32 temp = (png_uint_32)((png_uint_32)(fg) \ 2542 * (png_uint_32)(alpha) \ 2543 + (png_uint_32)(bg)*(65535 \ 2544 - (png_uint_32)(alpha)) + 32768); \ 2545 (composite) = (png_uint_16)(0xffff & ((temp + (temp >> 16)) >> 16)); } 2549 # define png_composite(composite, fg, alpha, bg) \ 2551 (png_byte)(0xff & (((png_uint_16)(fg) * (png_uint_16)(alpha) + \ 2552 (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) + \ 2555 # define png_composite_16(composite, fg, alpha, bg) \ 2557 (png_uint_16)(0xffff & (((png_uint_32)(fg) * (png_uint_32)(alpha) + \ 2558 (png_uint_32)(bg)*(png_uint_32)(65535 - (png_uint_32)(alpha)) + \ 2562 #ifdef PNG_READ_INT_FUNCTIONS_SUPPORTED 2573 #ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED 2576 #ifdef PNG_SAVE_INT_32_SUPPORTED 2584 #ifdef PNG_WRITE_INT_FUNCTIONS_SUPPORTED 2589 #ifdef PNG_USE_READ_MACROS 2594 # define PNG_get_uint_32(buf) \ 2595 (((png_uint_32)(*(buf)) << 24) + \ 2596 ((png_uint_32)(*((buf) + 1)) << 16) + \ 2597 ((png_uint_32)(*((buf) + 2)) << 8) + \ 2598 ((png_uint_32)(*((buf) + 3)))) 2603 # define PNG_get_uint_16(buf) \ 2605 (((unsigned int)(*(buf)) << 8) + \ 2606 ((unsigned int)(*((buf) + 1))))) 2608 # define PNG_get_int_32(buf) \ 2609 ((png_int_32)((*(buf) & 0x80) \ 2610 ? -((png_int_32)(((png_get_uint_32(buf)^0xffffffffU)+1U)&0x7fffffffU)) \ 2611 : (png_int_32)png_get_uint_32(buf))) 2617 # define png_get_uint_32(buf) PNG_get_uint_32(buf) 2618 # define png_get_uint_16(buf) PNG_get_uint_16(buf) 2619 # define png_get_int_32(buf) PNG_get_int_32(buf) 2624 # define PNG_get_uint_32 (png_get_uint_32) 2625 # define PNG_get_uint_16 (png_get_uint_16) 2626 # define PNG_get_int_32 (png_get_int_32) 2630 #ifdef PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED 2631 PNG_EXPORT(242,
void, png_set_check_for_invalid_index,
2633 # ifdef PNG_GET_PALETTE_MAX_SUPPORTED 2685 #if defined(PNG_SIMPLIFIED_READ_SUPPORTED) || \ 2686 defined(PNG_SIMPLIFIED_WRITE_SUPPORTED) 2688 #define PNG_IMAGE_VERSION 1 2711 # define PNG_IMAGE_WARNING 1 2712 # define PNG_IMAGE_ERROR 2 2722 # define PNG_IMAGE_FAILED(png_cntrl) ((((png_cntrl).warning_or_error)&0x03)>1) 2797 #define PNG_FORMAT_FLAG_ALPHA 0x01U 2798 #define PNG_FORMAT_FLAG_COLOR 0x02U 2799 #define PNG_FORMAT_FLAG_LINEAR 0x04U 2800 #define PNG_FORMAT_FLAG_COLORMAP 0x08U 2802 #ifdef PNG_FORMAT_BGR_SUPPORTED 2803 # define PNG_FORMAT_FLAG_BGR 0x10U 2806 #ifdef PNG_FORMAT_AFIRST_SUPPORTED 2807 # define PNG_FORMAT_FLAG_AFIRST 0x20U 2814 #define PNG_FORMAT_GRAY 0 2815 #define PNG_FORMAT_GA PNG_FORMAT_FLAG_ALPHA 2816 #define PNG_FORMAT_AG (PNG_FORMAT_GA|PNG_FORMAT_FLAG_AFIRST) 2817 #define PNG_FORMAT_RGB PNG_FORMAT_FLAG_COLOR 2818 #define PNG_FORMAT_BGR (PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_BGR) 2819 #define PNG_FORMAT_RGBA (PNG_FORMAT_RGB|PNG_FORMAT_FLAG_ALPHA) 2820 #define PNG_FORMAT_ARGB (PNG_FORMAT_RGBA|PNG_FORMAT_FLAG_AFIRST) 2821 #define PNG_FORMAT_BGRA (PNG_FORMAT_BGR|PNG_FORMAT_FLAG_ALPHA) 2822 #define PNG_FORMAT_ABGR (PNG_FORMAT_BGRA|PNG_FORMAT_FLAG_AFIRST) 2827 #define PNG_FORMAT_LINEAR_Y PNG_FORMAT_FLAG_LINEAR 2828 #define PNG_FORMAT_LINEAR_Y_ALPHA (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_ALPHA) 2829 #define PNG_FORMAT_LINEAR_RGB (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_COLOR) 2830 #define PNG_FORMAT_LINEAR_RGB_ALPHA \ 2831 (PNG_FORMAT_FLAG_LINEAR|PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_ALPHA) 2838 #define PNG_FORMAT_RGB_COLORMAP (PNG_FORMAT_RGB|PNG_FORMAT_FLAG_COLORMAP) 2839 #define PNG_FORMAT_BGR_COLORMAP (PNG_FORMAT_BGR|PNG_FORMAT_FLAG_COLORMAP) 2840 #define PNG_FORMAT_RGBA_COLORMAP (PNG_FORMAT_RGBA|PNG_FORMAT_FLAG_COLORMAP) 2841 #define PNG_FORMAT_ARGB_COLORMAP (PNG_FORMAT_ARGB|PNG_FORMAT_FLAG_COLORMAP) 2842 #define PNG_FORMAT_BGRA_COLORMAP (PNG_FORMAT_BGRA|PNG_FORMAT_FLAG_COLORMAP) 2843 #define PNG_FORMAT_ABGR_COLORMAP (PNG_FORMAT_ABGR|PNG_FORMAT_FLAG_COLORMAP) 2863 #define PNG_IMAGE_SAMPLE_CHANNELS(fmt)\ 2864 (((fmt)&(PNG_FORMAT_FLAG_COLOR|PNG_FORMAT_FLAG_ALPHA))+1) 2867 #define PNG_IMAGE_SAMPLE_COMPONENT_SIZE(fmt)\ 2868 ((((fmt) & PNG_FORMAT_FLAG_LINEAR) >> 2)+1) 2873 #define PNG_IMAGE_SAMPLE_SIZE(fmt)\ 2874 (PNG_IMAGE_SAMPLE_CHANNELS(fmt) * PNG_IMAGE_SAMPLE_COMPONENT_SIZE(fmt)) 2880 #define PNG_IMAGE_MAXIMUM_COLORMAP_COMPONENTS(fmt)\ 2881 (PNG_IMAGE_SAMPLE_CHANNELS(fmt) * 256) 2896 #define PNG_IMAGE_PIXEL_(test,fmt)\ 2897 (((fmt)&PNG_FORMAT_FLAG_COLORMAP)?1:test(fmt)) 2899 #define PNG_IMAGE_PIXEL_CHANNELS(fmt)\ 2900 PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_CHANNELS,fmt) 2905 #define PNG_IMAGE_PIXEL_COMPONENT_SIZE(fmt)\ 2906 PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_COMPONENT_SIZE,fmt) 2911 #define PNG_IMAGE_PIXEL_SIZE(fmt) PNG_IMAGE_PIXEL_(PNG_IMAGE_SAMPLE_SIZE,fmt) 2915 #define PNG_IMAGE_ROW_STRIDE(image)\ 2916 (PNG_IMAGE_PIXEL_CHANNELS((image).format) * (image).width) 2927 #define PNG_IMAGE_BUFFER_SIZE(image, row_stride)\ 2928 (PNG_IMAGE_PIXEL_COMPONENT_SIZE((image).format)*(image).height*(row_stride)) 2936 #define PNG_IMAGE_SIZE(image)\ 2937 PNG_IMAGE_BUFFER_SIZE(image, PNG_IMAGE_ROW_STRIDE(image)) 2942 #define PNG_IMAGE_COLORMAP_SIZE(image)\ 2943 (PNG_IMAGE_SAMPLE_SIZE((image).format) * (image).colormap_entries) 2955 #define PNG_IMAGE_FLAG_COLORSPACE_NOT_sRGB 0x01 2960 #define PNG_IMAGE_FLAG_FAST 0x02 2971 #define PNG_IMAGE_FLAG_16BIT_sRGB 0x04 2989 #ifdef PNG_SIMPLIFIED_READ_SUPPORTED 2996 #ifdef PNG_STDIO_SUPPORTED 2998 const char *file_name));
3053 #ifdef PNG_SIMPLIFIED_WRITE_SUPPORTED 3070 #ifdef PNG_SIMPLIFIED_WRITE_STDIO_SUPPORTED 3072 const char *file,
int convert_to_8bit,
const void *
buffer,
3073 png_int_32 row_stride,
const void *colormap));
3077 int convert_to_8_bit,
const void *
buffer, png_int_32 row_stride,
3078 const void *colormap));
3105 const void *
buffer, png_int_32 row_stride,
const void *colormap));
3128 #define png_image_write_get_memory_size(image, size, convert_to_8_bit, buffer,\ 3129 row_stride, colormap)\ 3130 png_image_write_to_memory(&(image), 0, &(size), convert_to_8_bit, buffer,\ 3131 row_stride, colormap) 3147 #define PNG_IMAGE_DATA_SIZE(image) (PNG_IMAGE_SIZE(image)+(image).height) 3157 #ifndef PNG_ZLIB_MAX_SIZE 3158 # define PNG_ZLIB_MAX_SIZE(b) ((b)+(((b)+7U)>>3)+(((b)+63U)>>6)+11U) 3167 #define PNG_IMAGE_COMPRESSED_SIZE_MAX(image)\ 3168 PNG_ZLIB_MAX_SIZE((png_alloc_size_t)PNG_IMAGE_DATA_SIZE(image)) 3171 #define PNG_IMAGE_PNG_SIZE_MAX_(image, image_size)\ 3172 ((8U+25U+16U+44U+12U+\ 3173 (((image).format&PNG_FORMAT_FLAG_COLORMAP)?\ 3174 12U+3U*(image).colormap_entries+\ 3175 (((image).format&PNG_FORMAT_FLAG_ALPHA)?\ 3176 12U+(image).colormap_entries:0U):0U)+\ 3177 12U)+(12U*((image_size)/PNG_ZBUF_SIZE))+(image_size)) 3184 #define PNG_IMAGE_PNG_SIZE_MAX(image)\ 3185 PNG_IMAGE_PNG_SIZE_MAX_(image, PNG_IMAGE_COMPRESSED_SIZE_MAX(image)) 3218 #ifdef PNG_SET_OPTION_SUPPORTED 3219 #ifdef PNG_ARM_NEON_API_SUPPORTED 3220 # define PNG_ARM_NEON 0 3222 #define PNG_MAXIMUM_INFLATE_WINDOW 2 3223 #define PNG_SKIP_sRGB_CHECK_PROFILE 4 3224 #define PNG_OPTION_NEXT 6 3227 #define PNG_OPTION_UNSET 0 3228 #define PNG_OPTION_INVALID 1 3229 #define PNG_OPTION_OFF 2 3230 #define PNG_OPTION_ON 3 3247 #ifdef PNG_EXPORT_LAST_ORDINAL 3248 PNG_EXPORT_LAST_ORDINAL(245);
#define png_get_uint_16(buf)
png_const_structrp png_const_inforp double double double double double double double double double *blue_Z png_const_structrp png_const_inforp png_fixed_point png_fixed_point png_fixed_point * int_red_Z
png_const_structrp png_const_inforp double double * red_Y
png_const_structrp png_const_inforp double double double double double double double double double *blue_Z png_const_structrp png_const_inforp png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point *int_blue_Z png_const_structrp png_inforp double double double double double double double double double blue_Z png_const_structrp png_inforp png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point int_blue_Z png_get_gAMA_fixed
PNG_FP_EXPORT(32, void, png_set_rgb_to_gray,(png_structrp png_ptr, int error_action, double red, double green)) PNG_FIXED_EXPORT(33
png_const_structrp png_const_inforp double double double double double double double double double *blue_Z png_const_structrp png_const_inforp png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point * int_green_Y
struct png_time_struct png_time
struct png_sPLT_entry_struct png_sPLT_entry
const char * png_const_charp
#define png_get_uint_32(buf)
GLuint GLsizei const GLchar * message
const png_unknown_chunk * png_const_unknown_chunkp
GLint GLint GLsizei width
png_const_structrp png_const_inforp double double double double * green_X
char * png_libpng_version_1_6_23
const png_sPLT_t * png_const_sPLT_tp
png_const_structrp png_const_inforp double double double double double double double double double *blue_Z PNG_FIXED_EXPORT(134, png_uint_32, png_get_cHRM_fixed,(png_const_structrp png_ptr, png_const_inforp info_ptr, png_fixed_point *int_white_x, png_fixed_point *int_white_y, png_fixed_point *int_red_x, png_fixed_point *int_red_y, png_fixed_point *int_green_x, png_fixed_point *int_green_y, png_fixed_point *int_blue_x, png_fixed_point *int_blue_y)) PNG_FIXED_EXPORT(231
const png_sPLT_entry * png_const_sPLT_entryp
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
png_const_structrp png_const_inforp double double double double double double double double double *blue_Z png_const_structrp png_const_inforp png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point *int_blue_Z png_const_structrp png_inforp double double double double double double double double double blue_Z png_set_cHRM_XYZ_fixed
png_structrp png_const_color_16p int background_gamma_code
png_uint_32 warning_or_error
GLuint const GLchar * name
png_color_16 ** png_color_16pp
png_const_structrp png_const_inforp double double double double double double * green_Z
png_const_structrp png_const_inforp double double double double double double double double double *blue_Z png_const_structrp png_const_inforp png_fixed_point * int_red_X
const png_color_8 * png_const_color_8p
png_const_structrp png_const_inforp double double double double double double double double double *blue_Z png_const_structrp png_const_inforp png_fixed_point png_fixed_point png_fixed_point png_fixed_point * int_green_X
PNG_EXPORT(1, png_uint_32, png_access_version_number,(void))
const png_time * png_const_timep
png_size_t png_alloc_size_t
png_unknown_chunk * png_unknown_chunkp
png_structrp int png_fixed_point red
png_const_structrp png_const_inforp int * unit
struct png_color_8_struct png_color_8
png_color_8 * png_color_8p
const png_struct *PNG_RESTRICT png_const_structrp
png_const_structrp png_const_inforp double double double * red_Z
png_const_structrp png_const_inforp double double double double double double double double * blue_Y
const png_info *PNG_RESTRICT png_const_inforp
struct png_image * png_imagep
struct png_text_struct png_text
png_structrp png_fixed_point screen_gamma
png_int_32 png_fixed_point
const png_color * png_const_colorp
struct png_sPLT_struct png_sPLT_t
PNG_EXPORTA(4, png_structp, png_create_read_struct,(png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn), PNG_ALLOCATED)
const png_byte * png_const_bytep
const png_uint_16 * png_const_uint_16p
png_row_info * png_row_infop
struct png_color_16_struct png_color_16
typedef PNG_CALLBACK(void, *png_error_ptr,(png_structp, png_const_charp))
png_unknown_chunk ** png_unknown_chunkpp
png_sPLT_t ** png_sPLT_tpp
png_const_structrp png_const_inforp info_ptr
struct png_info_def png_info
const void * png_const_voidp
png_get_pixel_aspect_ratio_fixed
png_struct *PNG_RESTRICT png_structrp
png_sPLT_entry * png_sPLT_entryp
GLenum GLuint GLenum GLsizei const GLchar * buf
#define png_get_int_32(buf)
png_const_structrp png_const_inforp double double double double double double double double double *blue_Z png_const_structrp png_const_inforp png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point *int_blue_Z png_const_structrp png_inforp double double double double double double double double double blue_Z png_const_structrp png_inforp png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point int_blue_Z png_const_structrp png_const_inforp png_fixed_point *int_file_gamma png_set_gAMA_fixed
const png_info * png_const_infop
struct png_struct_def png_struct
const png_color_16 * png_const_color_16p
png_const_structrp png_const_inforp double double double double double double double double double *blue_Z png_const_structrp png_const_inforp png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point * int_blue_X
png_const_structrp png_const_inforp double double double double double double double double double *blue_Z png_const_structrp png_const_inforp png_fixed_point png_fixed_point * int_red_Y
png_structrp int error_action
png_structrp png_const_color_16p int int need_expand
png_uint_16 * png_uint_16p
png_const_structrp png_const_inforp double double double double double double double double double *blue_Z png_get_cHRM_XYZ_fixed
png_set_rgb_to_gray_fixed
png_row_info ** png_row_infopp
png_const_structrp png_const_inforp double double double double double double double * blue_X
struct png_unknown_chunk_t png_unknown_chunk
struct png_control * png_controlp
PNG_FUNCTION(void,(PNGCAPI *png_longjmp_ptr), PNGARG((jmp_buf, int)), typedef)
png_set_filter_heuristics_fixed
GLuint GLuint GLsizei GLenum type
png_structrp png_const_color_16p background_color
png_const_structrp png_const_inforp double double double double double double double double double *blue_Z png_const_structrp png_const_inforp png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point *int_blue_Z png_set_cHRM_XYZ
png_sPLT_entry ** png_sPLT_entrypp
png_structrp int int num_weights
png_uint_32 colormap_entries
struct png_row_info_struct png_row_info
png_const_structrp png_const_inforp double double double double double * green_Y
const png_struct * png_const_structp
png_info *PNG_RESTRICT png_inforp
PNG_REMOVED(200, png_const_bytep, png_get_io_chunk_name,(png_structrp png_ptr), PNG_DEPRECATED) PNG_EXPORT(216
GLuint GLsizei GLsizei * length
png_color_16 * png_color_16p
png_const_structrp png_const_inforp double double double double double double double double double *blue_Z png_const_structrp png_const_inforp png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point * int_blue_Y
png_color_8 ** png_color_8pp
png_structrp int int png_const_fixed_point_p filter_weights
png_structrp int heuristic_method
GLint GLint GLsizei GLsizei height
png_const_structrp png_const_inforp double * red_X
const png_text * png_const_textp
png_const_structrp png_const_inforp double double double double double double double double double *blue_Z png_const_structrp png_const_inforp png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point png_fixed_point * int_green_Z
png_get_x_offset_inches_fixed
struct png_color_struct png_color
png_struct ** png_structpp
const png_fixed_point * png_const_fixed_point_p
png_const_structrp png_const_inforp info_ptr png_get_y_offset_inches_fixed