1 #ifndef CLIB_PNG_PROTOS_H 2 #define CLIB_PNG_PROTOS_H 3 4 /* 5 png.library C prototypes 6 7 Copyright © 2003-2004 The MorphOS Development Team, All Rights Reserved. 8 */ 9 10 #ifndef LIBRARIES_PNG_H 11 # include <libraries/png.h> 12 #endif 13 14 15 #ifdef __cplusplus 16 extern "C" { 17 #endif 18 19 png_uint_32 png_access_version_number(void); 20 void png_set_sig_bytes(png_structp png_ptr, int num_bytes); 21 int png_sig_cmp(png_bytep sig, png_size_t start, png_size_t num_to_check); 22 int png_check_sig(png_bytep sig, int num); 23 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); 24 png_structp png_create_write_struct(png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn); 25 png_uint_32 png_get_compression_buffer_size(png_structp png_ptr); 26 void png_set_compression_buffer_size(png_structp png_ptr, png_uint_32 size); 27 int png_reset_zstream(png_structp png_ptr); 28 void png_write_chunk(png_structp png_ptr, png_bytep chunk_name, png_bytep data, png_size_t length); 29 void png_write_chunk_start(png_structp png_ptr, png_bytep chunk_name, png_uint_32 length); 30 void png_write_chunk_data(png_structp png_ptr, png_bytep data, png_size_t length); 31 void png_write_chunk_end(png_structp png_ptr); 32 png_infop png_create_info_struct(png_structp png_ptr); 33 void png_write_info_before_PLTE(png_structp png_ptr, png_infop info_ptr); 34 void png_write_info(png_structp png_ptr, png_infop info_ptr); 35 void png_read_info(png_structp png_ptr, png_infop info_ptr); 36 37 png_charp png_convert_to_rfc1123(png_structp png_ptr, png_timep ptime); 38 void png_convert_from_struct_tm(png_timep ptime, struct tm FAR * ttime); 39 void png_convert_from_time_t32(png_timep ptime, long ttime); 40 void png_convert_from_time_t64(png_timep ptime, long long ttime); 41 void png_set_expand(png_structp png_ptr); 42 void png_set_gray_1_2_4_to_8(png_structp png_ptr); 43 void png_set_expand_gray_1_2_4_to_8(png_structp png_ptr); 44 void png_set_palette_to_rgb(png_structp png_ptr); 45 void png_set_tRNS_to_alpha(png_structp png_ptr); 46 void png_set_bgr(png_structp png_ptr); 47 void png_set_gray_to_rgb(png_structp png_ptr); 48 void png_set_rgb_to_gray(png_structp png_ptr, int error_action, double red, double green ); 49 50 void png_set_rgb_to_gray_fixed(png_structp png_ptr, int error_action, png_fixed_point red, png_fixed_point green ); 51 png_byte png_get_rgb_to_gray_status(png_structp png_ptr); 52 53 void png_build_grayscale_palette(int bit_depth, png_colorp palette); 54 void png_set_strip_alpha(png_structp png_ptr); 55 void png_set_swap_alpha(png_structp png_ptr); 56 void png_set_invert_alpha(png_structp png_ptr); 57 void png_set_filler(png_structp png_ptr, png_uint_32 filler, int flags); 58 void png_set_add_alpha(png_structp png_ptr, png_uint_32 filler, int filler_loc); 59 void png_set_swap(png_structp png_ptr); 60 void png_set_packing(png_structp png_ptr); 61 void png_set_packswap(png_structp png_ptr); 62 void png_set_shift(png_structp png_ptr, png_color_8p true_bits); 63 int png_set_interlace_handling(png_structp png_ptr); 64 void png_set_invert_mono(png_structp png_ptr); 65 66 void png_set_background(png_structp png_ptr, png_color_16p background_color, int background_gamma_code, int need_expand, double background_gamma); 67 void png_set_strip_16(png_structp png_ptr); 68 void png_set_dither(png_structp png_ptr, png_colorp palette, int num_palette, int maximum_colors, png_uint_16p histogram, int full_dither); 69 70 void png_set_gamma(png_structp png_ptr, double screen_gamma, double default_file_gamma); 71 72 void png_set_flush(png_structp png_ptr, int nrows); 73 void png_write_flush(png_structp png_ptr); 74 75 76 void png_start_read_image(png_structp png_ptr); 77 void png_read_update_info(png_structp png_ptr, png_infop info_ptr); 78 void png_read_rows(png_structp png_ptr, png_bytepp row, png_bytepp display_row, png_uint_32 num_rows); 79 void png_read_row(png_structp png_ptr, png_bytep row, png_bytep display_row); 80 void png_read_image(png_structp png_ptr, png_bytepp image); 81 void png_read_end(png_structp png_ptr, png_infop info_ptr); 82 83 84 void png_write_row(png_structp png_ptr, png_bytep row); 85 void png_write_rows(png_structp png_ptr, png_bytepp row, png_uint_32 num_rows); 86 void png_write_image(png_structp png_ptr, png_bytepp image); 87 void png_write_end(png_structp png_ptr, png_infop info_ptr); 88 89 90 void png_destroy_info_struct(png_structp png_ptr, png_infopp info_ptr_ptr); 91 void png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr); 92 void png_destroy_write_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr); 93 94 void png_set_crc_action(png_structp png_ptr, int crit_action, int ancil_action); 95 void png_set_filter(png_structp png_ptr, int method, int filters); 96 void png_set_filter_heuristics(png_structp png_ptr, int heuristic_method, int num_weights, png_doublep filter_weights, png_doublep filter_costs); 97 98 void png_set_compression_level(png_structp png_ptr, int level); 99 void png_set_compression_mem_level (png_structp png_ptr, int mem_level); 100 void png_set_compression_strategy (png_structp png_ptr, int strategy); 101 void png_set_compression_window_bits(png_structp png_ptr, int window_bits); 102 void png_set_compression_method(png_structp png_ptr, int method); 103 104 void png_set_error_fn(png_structp png_ptr, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn); 105 png_voidp png_get_error_ptr(png_structp png_ptr); 106 107 void png_set_write_fn(png_structp png_ptr, png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn); 108 void png_set_read_fn(png_structp png_ptr, png_voidp io_ptr, png_rw_ptr read_data_fn); 109 110 png_voidp png_get_io_ptr(png_structp png_ptr); 111 112 void png_set_read_status_fn(png_structp png_ptr, png_read_status_ptr read_row_fn); 113 void png_set_write_status_fn(png_structp png_ptr, png_write_status_ptr write_row_fn); 114 115 void png_set_read_user_transform_fn(png_structp png_ptr, png_user_transform_ptr read_user_transform_fn); 116 void png_set_write_user_transform_fn(png_structp png_ptr, png_user_transform_ptr write_user_transform_fn); 117 void png_set_user_transform_info(png_structp png_ptr, png_voidp user_transform_ptr, int user_transform_depth, int user_transform_channels); 118 png_voidp png_get_user_transform_ptr(png_structp png_ptr); 119 120 void png_set_read_user_chunk_fn(png_structp png_ptr,png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn); 121 png_voidp png_get_user_chunk_ptr(png_structp png_ptr); 122 123 124 void png_set_progressive_read_fn(png_structp png_ptr, png_voidp progressive_ptr, png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn, png_progressive_end_ptr end_fn); 125 png_voidp png_get_progressive_ptr(png_structp png_ptr); 126 void png_process_data(png_structp png_ptr, png_infop info_ptr, png_bytep buffer, png_size_t buffer_size); 127 void png_progressive_combine_row(png_structp png_ptr, png_bytep old_row, png_bytep new_row); 128 129 130 png_voidp png_malloc(png_structp png_ptr, png_uint_32 size); 131 png_voidp png_malloc_warn(png_structp png_ptr, png_uint_32 size); 132 void png_free(png_structp png_ptr, png_voidp ptr); 133 void png_free_data(png_structp png_ptr, png_infop info_ptr, png_uint_32 free_me, int num); 134 void png_data_freer(png_structp png_ptr, png_infop info_ptr, int freer, png_uint_32 mask); 135 136 137 png_voidp png_memcpy_check(png_structp png_ptr, png_voidp s1, png_voidp s2, png_uint_32 size); 138 png_voidp png_memset_check(png_structp png_ptr, png_voidp s1, int value, png_uint_32 size); 139 140 void png_error(png_structp png_ptr, png_const_charp error_message); 141 void png_chunk_error(png_structp png_ptr, png_const_charp error_message); 142 143 void png_warning(png_structp png_ptr, png_const_charp warning_message); 144 void png_chunk_warning(png_structp png_ptr, png_const_charp warning_message); 145 146 png_uint_32 png_get_valid(png_structp png_ptr,png_infop info_ptr, png_uint_32 flag); 147 png_uint_32 png_get_rowbytes(png_structp png_ptr,png_infop info_ptr); 148 149 png_bytepp png_get_rows(png_structp png_ptr,png_infop info_ptr); 150 void png_set_rows(png_structp png_ptr, png_infop info_ptr, png_bytepp row_pointers); 151 152 png_byte png_get_channels(png_structp png_ptr, png_infop info_ptr); 153 154 png_uint_32 png_get_image_width(png_structp png_ptr, png_infop info_ptr); 155 png_uint_32 png_get_image_height(png_structp png_ptr, png_infop info_ptr); 156 png_byte png_get_bit_depth(png_structp png_ptr, png_infop info_ptr); 157 png_byte png_get_color_type(png_structp png_ptr, png_infop info_ptr); 158 png_byte png_get_filter_type(png_structp png_ptr, png_infop info_ptr); 159 png_byte png_get_interlace_type(png_structp png_ptr, png_infop info_ptr); 160 png_byte png_get_compression_type(png_structp png_ptr, png_infop info_ptr); 161 162 png_uint_32 png_get_pixels_per_meter(png_structp png_ptr, png_infop info_ptr); 163 png_uint_32 png_get_x_pixels_per_meter(png_structp png_ptr, png_infop info_ptr); 164 png_uint_32 png_get_y_pixels_per_meter(png_structp png_ptr, png_infop info_ptr); 165 166 float png_get_pixel_aspect_ratio(png_structp png_ptr, png_infop info_ptr); 167 168 png_int_32 png_get_x_offset_pixels(png_structp png_ptr, png_infop info_ptr); 169 png_int_32 png_get_y_offset_pixels(png_structp png_ptr, png_infop info_ptr); 170 png_int_32 png_get_x_offset_microns(png_structp png_ptr, png_infop info_ptr); 171 png_int_32 png_get_y_offset_microns(png_structp png_ptr, png_infop info_ptr); 172 173 174 png_bytep png_get_signature(png_structp png_ptr, png_infop info_ptr); 175 176 png_uint_32 png_get_bKGD(png_structp png_ptr, png_infop info_ptr, png_color_16p *background); 177 178 void png_set_bKGD(png_structp png_ptr, png_infop info_ptr, png_color_16p background); 179 180 png_uint_32 png_get_cHRM(png_structp png_ptr, png_infop info_ptr, double *white_x, double *white_y, double *red_x, double *red_y, double *green_x, double *green_y, double *blue_x, double *blue_y); 181 png_uint_32 png_get_cHRM_fixed(png_structp png_ptr, png_infop 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); 182 183 void png_set_cHRM(png_structp png_ptr, png_infop info_ptr, double white_x, double white_y, double red_x, double red_y, double green_x, double green_y, double blue_x, double blue_y); 184 void png_set_cHRM_fixed(png_structp png_ptr, png_infop 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); 185 186 png_uint_32 png_get_gAMA(png_structp png_ptr, png_infop info_ptr, double *file_gamma); 187 png_uint_32 png_get_gAMA_fixed(png_structp png_ptr, png_infop info_ptr, png_fixed_point *int_file_gamma); 188 189 void png_set_gAMA(png_structp png_ptr, png_infop info_ptr, double file_gamma); 190 void png_set_gAMA_fixed(png_structp png_ptr, png_infop info_ptr, png_fixed_point int_file_gamma); 191 192 193 png_uint_32 png_get_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_16p *hist); 194 void png_set_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_16p hist); 195 196 197 png_uint_32 png_get_IHDR(png_structp png_ptr, png_infop info_ptr, png_uint_32 *width, png_uint_32 *height, int *bit_depth, int *color_type, int *interlace_method, int *compression_method, int *filter_method); 198 void png_set_IHDR(png_structp png_ptr, png_infop info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, int color_type, int interlace_method, int compression_method, int filter_method); 199 200 png_uint_32 png_get_oFFs(png_structp png_ptr, png_infop info_ptr, png_int_32 *offset_x, png_int_32 *offset_y, int *unit_type); 201 void png_set_oFFs(png_structp png_ptr, png_infop info_ptr, png_int_32 offset_x, png_int_32 offset_y, int unit_type); 202 203 204 png_uint_32 png_get_pCAL(png_structp png_ptr, png_infop info_ptr, png_charp *purpose, png_int_32 *X0, png_int_32 *X1, int *type, int *nparams, png_charp *units, png_charpp *params); 205 void png_set_pCAL(png_structp png_ptr, png_infop info_ptr, png_charp purpose, png_int_32 X0, png_int_32 X1, int type, int nparams, png_charp units, png_charpp params); 206 207 png_uint_32 png_get_pHYs(png_structp png_ptr, png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type); 208 void png_set_pHYs(png_structp png_ptr, png_infop info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type); 209 210 211 png_uint_32 png_get_PLTE(png_structp png_ptr, png_infop info_ptr, png_colorp *palette, int *num_palette); 212 void png_set_PLTE(png_structp png_ptr, png_infop info_ptr, png_colorp palette, int num_palette); 213 214 215 png_uint_32 png_get_sBIT(png_structp png_ptr, png_infop info_ptr, png_color_8p *sig_bit); 216 void png_set_sBIT(png_structp png_ptr, png_infop info_ptr, png_color_8p sig_bit); 217 218 219 png_uint_32 png_get_sRGB(png_structp png_ptr, png_infop info_ptr, int *intent); 220 void png_set_sRGB(png_structp png_ptr, png_infop info_ptr, int intent); 221 void png_set_sRGB_gAMA_and_cHRM(png_structp png_ptr, png_infop info_ptr, int intent); 222 223 224 png_uint_32 png_get_iCCP(png_structp png_ptr, png_infop info_ptr, png_charpp name, int *compression_type, png_charpp profile, png_uint_32 *proflen); 225 void png_set_iCCP(png_structp png_ptr, png_infop info_ptr, png_charp name, int compression_type, png_charp profile, png_uint_32 proflen); 226 227 228 png_uint_32 png_get_sPLT(png_structp png_ptr, png_infop info_ptr, png_sPLT_tpp entries); 229 void png_set_sPLT(png_structp png_ptr, png_infop info_ptr, png_sPLT_tp entries, int nentries); 230 231 232 png_uint_32 png_get_text(png_structp png_ptr, png_infop info_ptr, png_textp *text_ptr, int *num_text); 233 void png_set_text(png_structp png_ptr, png_infop info_ptr, png_textp text_ptr, int num_text); 234 235 236 png_uint_32 png_get_tIME(png_structp png_ptr, png_infop info_ptr, png_timep *mod_time); 237 void png_set_tIME(png_structp png_ptr, png_infop info_ptr, png_timep mod_time); 238 239 240 png_uint_32 png_get_tRNS(png_structp png_ptr, png_infop info_ptr, png_bytep *trans, int *num_trans, png_color_16p *trans_values); 241 void png_set_tRNS(png_structp png_ptr, png_infop info_ptr, png_bytep trans, int num_trans, png_color_16p trans_values); 242 243 png_uint_32 png_get_sCAL(png_structp png_ptr, png_infop info_ptr, int *unit, double *width, double *height); 244 void png_set_sCAL(png_structp png_ptr, png_infop info_ptr, int unit, double width, double height); 245 246 247 void png_set_keep_unknown_chunks(png_structp png_ptr, int keep, png_bytep chunk_list, int num_chunks); 248 void png_set_unknown_chunks(png_structp png_ptr, png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns); 249 void png_set_unknown_chunk_location(png_structp png_ptr, png_infop info_ptr, int chunk, int location); 250 png_uint_32 png_get_unknown_chunks(png_structp png_ptr, png_infop info_ptr, png_unknown_chunkpp entries); 251 252 253 int png_handle_as_unknown(png_structp png_ptr, png_bytep chunk_name); 254 void png_set_invalid(png_structp png_ptr, png_infop info_ptr, int mask); 255 256 void png_read_png(png_structp png_ptr, png_infop info_ptr, int transforms, png_voidp params); 257 void png_write_png(png_structp png_ptr, png_infop info_ptr, int transforms, png_voidp params); 258 259 260 /*png_bytep png_sig_bytes(void);*/ 261 262 png_charp png_get_copyright(png_structp png_ptr); 263 png_charp png_get_header_ver(png_structp png_ptr); 264 png_charp png_get_header_version(png_structp png_ptr); 265 png_charp png_get_libpng_ver(png_structp png_ptr); 266 267 png_uint_32 png_permit_mng_features(png_structp png_ptr, png_uint_32 mng_features_permitted); 268 269 int png_mmx_support(void); 270 271 void png_set_strip_error_numbers(png_structp png_ptr, png_uint_32 strip_mode); 272 273 void png_set_mem_fn(png_structp png_ptr, png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn); 274 png_voidp png_get_mem_ptr(png_structp png_ptr); 275 276 png_structp png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn); 277 png_structp png_create_write_struct_2(png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn); 278 279 png_voidp png_malloc_default(png_structp png_ptr, png_uint_32 size); 280 void png_free_default(png_structp png_ptr, png_voidp ptr); 281 282 void png_set_user_limits(png_structp png_ptr, png_uint_32 user_width_max, png_uint_32 user_height_max); 283 png_uint_32 png_get_user_width_max(png_structp png_ptr); 284 png_uint_32 png_get_user_height_max(png_structp png_ptr); 285 286 287 /* this is in libpng.a */ 288 289 void png_init_io(png_structp png_ptr, png_FILE_p fp); 290 291 292 #ifdef __cplusplus 293 } 294 #endif 295 296 #endif /* CLIB_PNG_PROTOS_H */