40 #if ZLIB_VERNUM < 0x1260 41 # define PNGZ_MSG_CAST(s) png_constcast(char*,s) 42 # define PNGZ_INPUT_CAST(b) png_constcast(png_bytep,b) 44 # define PNGZ_MSG_CAST(s) (s) 45 # define PNGZ_INPUT_CAST(b) (b) 57 # define ZLIB_IO_MAX ((uInt)-1) 60 #ifdef PNG_WRITE_SUPPORTED 62 typedef struct png_compression_buffer
64 struct png_compression_buffer *next;
66 } png_compression_buffer, *png_compression_bufferp;
68 #define PNG_COMPRESSION_BUFFER_SIZE(pp)\ 69 (offsetof(png_compression_buffer, output) + (pp)->zbuffer_size) 80 #ifdef PNG_COLORSPACE_SUPPORTED 86 png_fixed_point redx, redy;
87 png_fixed_point greenx, greeny;
88 png_fixed_point bluex, bluey;
89 png_fixed_point whitex, whitey;
95 typedef struct png_XYZ
97 png_fixed_point red_X, red_Y, red_Z;
98 png_fixed_point green_X, green_Y, green_Z;
99 png_fixed_point blue_X, blue_Y, blue_Z;
103 #if defined(PNG_COLORSPACE_SUPPORTED) || defined(PNG_GAMMA_SUPPORTED) 113 typedef struct png_colorspace
115 #ifdef PNG_GAMMA_SUPPORTED 116 png_fixed_point gamma;
119 #ifdef PNG_COLORSPACE_SUPPORTED 120 png_xy end_points_xy;
121 png_XYZ end_points_XYZ;
122 png_uint_16 rendering_intent;
127 } png_colorspace, * PNG_RESTRICT png_colorspacerp;
129 typedef const png_colorspace * PNG_RESTRICT png_const_colorspacerp;
132 #define PNG_COLORSPACE_HAVE_GAMMA 0x0001 133 #define PNG_COLORSPACE_HAVE_ENDPOINTS 0x0002 134 #define PNG_COLORSPACE_HAVE_INTENT 0x0004 135 #define PNG_COLORSPACE_FROM_gAMA 0x0008 136 #define PNG_COLORSPACE_FROM_cHRM 0x0010 137 #define PNG_COLORSPACE_FROM_sRGB 0x0020 138 #define PNG_COLORSPACE_ENDPOINTS_MATCH_sRGB 0x0040 139 #define PNG_COLORSPACE_MATCHES_sRGB 0x0080 140 #define PNG_COLORSPACE_INVALID 0x8000 141 #define PNG_COLORSPACE_CANCEL(flags) (0xffff ^ (flags)) 146 #ifdef PNG_SETJMP_SUPPORTED 147 jmp_buf jmp_buf_local;
148 png_longjmp_ptr longjmp_fn;
149 jmp_buf *jmp_buf_ptr;
152 png_error_ptr error_fn;
153 #ifdef PNG_WARNINGS_SUPPORTED 154 png_error_ptr warning_fn;
157 png_rw_ptr write_data_fn;
158 png_rw_ptr read_data_fn;
161 #ifdef PNG_READ_USER_TRANSFORM_SUPPORTED 162 png_user_transform_ptr read_user_transform_fn;
165 #ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED 166 png_user_transform_ptr write_user_transform_fn;
170 #ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED 171 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ 172 defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) 173 png_voidp user_transform_ptr;
174 png_byte user_transform_depth;
175 png_byte user_transform_channels;
181 png_uint_32 transformations;
186 #ifdef PNG_WRITE_SUPPORTED 187 png_compression_bufferp zbuffer_list;
192 int zlib_window_bits;
197 #ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED 199 int zlib_text_method;
200 int zlib_text_window_bits;
201 int zlib_text_mem_level;
202 int zlib_text_strategy;
206 #ifdef PNG_WRITE_SUPPORTED 209 int zlib_set_window_bits;
210 int zlib_set_mem_level;
211 int zlib_set_strategy;
216 png_uint_32 num_rows;
217 png_uint_32 usr_width;
220 png_uint_32 row_number;
221 png_uint_32 chunk_name;
228 #ifdef PNG_WRITE_SUPPORTED 234 png_size_t info_rowbytes;
236 png_uint_32 idat_size;
239 png_uint_16 num_palette;
242 #ifdef PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED 246 png_uint_16 num_trans;
247 png_byte compression;
254 png_byte usr_bit_depth;
255 png_byte pixel_depth;
257 #ifdef PNG_WRITE_SUPPORTED 258 png_byte usr_channels;
261 png_byte maximum_pixel_depth;
263 png_byte transformed_pixel_depth;
265 #if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) 269 #if defined(PNG_bKGD_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) ||\ 270 defined(PNG_READ_ALPHA_MODE_SUPPORTED) 271 png_byte background_gamma_type;
272 png_fixed_point background_gamma;
274 #ifdef PNG_READ_GAMMA_SUPPORTED 279 #ifdef PNG_WRITE_FLUSH_SUPPORTED 280 png_flush_ptr output_flush_fn;
281 png_uint_32 flush_dist;
282 png_uint_32 flush_rows;
285 #ifdef PNG_READ_GAMMA_SUPPORTED 287 png_fixed_point screen_gamma;
289 png_bytep gamma_table;
290 png_uint_16pp gamma_16_table;
291 #if defined(PNG_READ_BACKGROUND_SUPPORTED) || \ 292 defined(PNG_READ_ALPHA_MODE_SUPPORTED) || \ 293 defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) 294 png_bytep gamma_from_1;
295 png_bytep gamma_to_1;
296 png_uint_16pp gamma_16_from_1;
297 png_uint_16pp gamma_16_to_1;
301 #if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_sBIT_SUPPORTED) 305 #if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) 309 #if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) \ 310 || defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) 311 png_bytep trans_alpha;
315 png_read_status_ptr read_row_fn;
316 png_write_status_ptr write_row_fn;
317 #ifdef PNG_PROGRESSIVE_READ_SUPPORTED 318 png_progressive_info_ptr info_fn;
319 png_progressive_row_ptr row_fn;
320 png_progressive_end_ptr end_fn;
321 png_bytep save_buffer_ptr;
322 png_bytep save_buffer;
323 png_bytep current_buffer_ptr;
324 png_bytep current_buffer;
325 png_uint_32 push_length;
326 png_uint_32 skip_length;
327 png_size_t save_buffer_size;
328 png_size_t save_buffer_max;
329 png_size_t buffer_size;
330 png_size_t current_buffer_size;
336 #if defined(__TURBOC__) && !defined(_Windows) && !defined(__FLAT__) 338 png_bytepp offset_table_ptr;
339 png_bytep offset_table;
340 png_uint_16 offset_table_number;
341 png_uint_16 offset_table_count;
342 png_uint_16 offset_table_count_free;
345 #ifdef PNG_READ_QUANTIZE_SUPPORTED 346 png_bytep palette_lookup;
347 png_bytep quantize_index;
350 #ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED 351 png_byte heuristic_method;
352 png_byte num_prev_filters;
353 png_bytep prev_filters;
354 png_uint_16p filter_weights;
355 png_uint_16p inv_filter_weights;
356 png_uint_16p filter_costs;
357 png_uint_16p inv_filter_costs;
361 #ifdef PNG_SET_OPTION_SUPPORTED 365 #if PNG_LIBPNG_VER < 10700 367 #ifdef PNG_TIME_RFC1123_SUPPORTED 368 char time_buffer[29];
376 #ifdef PNG_USER_CHUNKS_SUPPORTED 377 png_voidp user_chunk_ptr;
378 #ifdef PNG_READ_USER_CHUNKS_SUPPORTED 379 png_user_chunk_ptr read_user_chunk_fn;
383 #ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED 385 unsigned int num_chunk_list;
386 png_bytep chunk_list;
391 #ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED 392 png_byte rgb_to_gray_status;
394 png_byte rgb_to_gray_coefficients_set;
396 png_uint_16 rgb_to_gray_red_coeff;
397 png_uint_16 rgb_to_gray_green_coeff;
402 #if defined(PNG_MNG_FEATURES_SUPPORTED) 404 png_uint_32 mng_features_permitted;
408 #ifdef PNG_MNG_FEATURES_SUPPORTED 409 png_byte filter_type;
415 #ifdef PNG_USER_MEM_SUPPORTED 417 png_malloc_ptr malloc_fn;
418 png_free_ptr free_fn;
422 png_bytep big_row_buf;
424 #ifdef PNG_READ_QUANTIZE_SUPPORTED 426 png_bytep quantize_sort;
427 png_bytep index_to_palette;
429 png_bytep palette_to_index;
434 png_byte compression_type;
436 #ifdef PNG_USER_LIMITS_SUPPORTED 437 png_uint_32 user_width_max;
438 png_uint_32 user_height_max;
443 png_uint_32 user_chunk_cache_max;
448 png_alloc_size_t user_chunk_malloc_max;
452 #ifdef PNG_READ_UNKNOWN_CHUNKS_SUPPORTED 460 png_size_t old_big_row_buf_size;
462 #ifdef PNG_READ_SUPPORTED 464 png_bytep read_buffer;
465 png_alloc_size_t read_buffer_size;
467 #ifdef PNG_SEQUENTIAL_READ_SUPPORTED 471 #ifdef PNG_IO_STATE_SUPPORTED 473 png_uint_32 io_state;
477 png_bytep big_prev_row;
480 void (*read_filter[PNG_FILTER_VALUE_LAST-1])(
png_row_infop row_info,
481 png_bytep row, png_const_bytep prev_row);
483 #ifdef PNG_READ_SUPPORTED 484 #if defined(PNG_COLORSPACE_SUPPORTED) || defined(PNG_GAMMA_SUPPORTED) 485 png_colorspace colorspace;
Definition: pngstruct.h:144