📄 png.h
字号:
* the place to find out how to use libpng. See libpng.txt for the * full explanation, see example.c for the summary. This just provides * a simple one line description of the use of each function. *//* Returns the version number of the library */extern PNG_EXPORT(png_uint_32,png_access_version_number) PNGARG((void));/* Tell lib we have already handled the first <num_bytes> magic bytes. * Handling more than 8 bytes from the beginning of the file is an error. */extern PNG_EXPORT(void,png_set_sig_bytes) PNGARG((png_structp png_ptr, int num_bytes));/* Check sig[start] through sig[start + num_to_check - 1] to see if it's a * PNG file. Returns zero if the supplied bytes match the 8-byte PNG * signature, and non-zero otherwise. Having num_to_check == 0 or * start > 7 will always fail (ie return non-zero). */extern PNG_EXPORT(int,png_sig_cmp) PNGARG((png_bytep sig, png_size_t start, png_size_t num_to_check));/* Simple signature checking function. This is the same as calling * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n). */extern PNG_EXPORT(int,png_check_sig) PNGARG((png_bytep sig, int num));/* Allocate and initialize png_ptr struct for reading, and any other memory. */extern PNG_EXPORT(png_structp,png_create_read_struct) PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn));/* Allocate and initialize png_ptr struct for writing, and any other memory */extern PNG_EXPORT(png_structp,png_create_write_struct) PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warn_fn));extern PNG_EXPORT(png_uint_32,png_get_compression_buffer_size) PNGARG((png_structp png_ptr));extern PNG_EXPORT(void,png_set_compression_buffer_size) PNGARG((png_structp png_ptr, png_uint_32 size));/* Reset the compression stream */extern PNG_EXPORT(int,png_reset_zstream) PNGARG((png_structp png_ptr));/* New functions added in libpng-1.0.2 (not enabled by default until 1.2.0) */#ifdef PNG_USER_MEM_SUPPORTEDextern PNG_EXPORT(png_structp,png_create_read_struct_2) PNGARG((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));extern PNG_EXPORT(png_structp,png_create_write_struct_2) PNGARG((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));#endif/* Write a PNG chunk - size, type, (optional) data, CRC. */extern PNG_EXPORT(void,png_write_chunk) PNGARG((png_structp png_ptr, png_bytep chunk_name, png_bytep data, png_size_t length));/* Write the start of a PNG chunk - length and chunk name. */extern PNG_EXPORT(void,png_write_chunk_start) PNGARG((png_structp png_ptr, png_bytep chunk_name, png_uint_32 length));/* Write the data of a PNG chunk started with png_write_chunk_start(). */extern PNG_EXPORT(void,png_write_chunk_data) PNGARG((png_structp png_ptr, png_bytep data, png_size_t length));/* Finish a chunk started with png_write_chunk_start() (includes CRC). */extern PNG_EXPORT(void,png_write_chunk_end) PNGARG((png_structp png_ptr));/* Allocate and initialize the info structure */extern PNG_EXPORT(png_infop,png_create_info_struct) PNGARG((png_structp png_ptr));/* Initialize the info structure (old interface - DEPRECATED) */extern PNG_EXPORT(void,png_info_init) PNGARG((png_infop info_ptr));#define png_info_init(info_ptr) png_info_init_3(&info_ptr, sizeof(png_info));extern PNG_EXPORT(void,png_info_init_3) PNGARG((png_infopp info_ptr, png_size_t png_info_struct_size));/* Writes all the PNG information before the image. */extern PNG_EXPORT(void,png_write_info_before_PLTE) PNGARG((png_structp png_ptr, png_infop info_ptr));extern PNG_EXPORT(void,png_write_info) PNGARG((png_structp png_ptr, png_infop info_ptr));/* read the information before the actual image data. */extern PNG_EXPORT(void,png_read_info) PNGARG((png_structp png_ptr, png_infop info_ptr));#if defined(PNG_TIME_RFC1123_SUPPORTED)extern PNG_EXPORT(png_charp,png_convert_to_rfc1123) PNGARG((png_structp png_ptr, png_timep ptime));#endif#if !defined(_WIN32_WCE)/* "time.h" functions are not supported on WindowsCE */#if defined(PNG_WRITE_tIME_SUPPORTED)/* convert from a struct tm to png_time */extern PNG_EXPORT(void,png_convert_from_struct_tm) PNGARG((png_timep ptime, struct tm FAR * ttime));/* convert from time_t to png_time. Uses gmtime() */extern PNG_EXPORT(void,png_convert_from_time_t) PNGARG((png_timep ptime, time_t ttime));#endif /* PNG_WRITE_tIME_SUPPORTED */#endif /* _WIN32_WCE */#if defined(PNG_READ_EXPAND_SUPPORTED)/* Expand data to 24-bit RGB, or 8-bit grayscale, with alpha if available. */extern PNG_EXPORT(void,png_set_expand) PNGARG((png_structp png_ptr));extern PNG_EXPORT(void,png_set_gray_1_2_4_to_8) PNGARG((png_structp png_ptr));extern PNG_EXPORT(void,png_set_palette_to_rgb) PNGARG((png_structp png_ptr));extern PNG_EXPORT(void,png_set_tRNS_to_alpha) PNGARG((png_structp png_ptr));#endif#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED)/* Use blue, green, red order for pixels. */extern PNG_EXPORT(void,png_set_bgr) PNGARG((png_structp png_ptr));#endif#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED)/* Expand the grayscale to 24-bit RGB if necessary. */extern PNG_EXPORT(void,png_set_gray_to_rgb) PNGARG((png_structp png_ptr));#endif#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED)/* Reduce RGB to grayscale. */#ifdef PNG_FLOATING_POINT_SUPPORTEDextern PNG_EXPORT(void,png_set_rgb_to_gray) PNGARG((png_structp png_ptr, int error_action, double red, double green ));#endifextern PNG_EXPORT(void,png_set_rgb_to_gray_fixed) PNGARG((png_structp png_ptr, int error_action, png_fixed_point red, png_fixed_point green ));extern PNG_EXPORT(png_byte,png_get_rgb_to_gray_status) PNGARG((png_structp png_ptr));#endifextern PNG_EXPORT(void,png_build_grayscale_palette) PNGARG((int bit_depth, png_colorp palette));#if defined(PNG_READ_STRIP_ALPHA_SUPPORTED)extern PNG_EXPORT(void,png_set_strip_alpha) PNGARG((png_structp png_ptr));#endif#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED)extern PNG_EXPORT(void,png_set_swap_alpha) PNGARG((png_structp png_ptr));#endif#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED)extern PNG_EXPORT(void,png_set_invert_alpha) PNGARG((png_structp png_ptr));#endif#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED)/* Add a filler byte to 24-bit RGB images. */extern PNG_EXPORT(void,png_set_filler) PNGARG((png_structp png_ptr, png_uint_32 filler, int flags));/* The values of the PNG_FILLER_ defines should NOT be changed */#define PNG_FILLER_BEFORE 0#define PNG_FILLER_AFTER 1#endif /* PNG_READ_FILLER_SUPPORTED || PNG_WRITE_FILLER_SUPPORTED */#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED)/* Swap bytes in 16-bit depth files. */extern PNG_EXPORT(void,png_set_swap) PNGARG((png_structp png_ptr));#endif#if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED)/* Use 1 byte per pixel in 1, 2, or 4-bit depth files. */extern PNG_EXPORT(void,png_set_packing) PNGARG((png_structp png_ptr));#endif#if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPORTED)/* Swap packing order of pixels in bytes. */extern PNG_EXPORT(void,png_set_packswap) PNGARG((png_structp png_ptr));#endif#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED)/* Converts files to legal bit depths. */extern PNG_EXPORT(void,png_set_shift) PNGARG((png_structp png_ptr, png_color_8p true_bits));#endif#if defined(PNG_READ_INTERLACING_SUPPORTED) || \ defined(PNG_WRITE_INTERLACING_SUPPORTED)/* Have the code handle the interlacing. Returns the number of passes. */extern PNG_EXPORT(int,png_set_interlace_handling) PNGARG((png_structp png_ptr));#endif#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED)/* Invert monochrome files */extern PNG_EXPORT(void,png_set_invert_mono) PNGARG((png_structp png_ptr));#endif#if defined(PNG_READ_BACKGROUND_SUPPORTED)/* Handle alpha and tRNS by replacing with a background color. */#ifdef PNG_FLOATING_POINT_SUPPORTEDextern PNG_EXPORT(void,png_set_background) PNGARG((png_structp png_ptr, png_color_16p background_color, int background_gamma_code, int need_expand, double background_gamma));#endif#define PNG_BACKGROUND_GAMMA_UNKNOWN 0#define PNG_BACKGROUND_GAMMA_SCREEN 1#define PNG_BACKGROUND_GAMMA_FILE 2#define PNG_BACKGROUND_GAMMA_UNIQUE 3#endif#if defined(PNG_READ_16_TO_8_SUPPORTED)/* strip the second byte of information from a 16-bit depth file. */extern PNG_EXPORT(void,png_set_strip_16) PNGARG((png_structp png_ptr));#endif#if defined(PNG_READ_DITHER_SUPPORTED)/* Turn on dithering, and reduce the palette to the number of colors available. */extern PNG_EXPORT(void,png_set_dither) PNGARG((png_structp png_ptr, png_colorp palette, int num_palette, int maximum_colors, png_uint_16p histogram, int full_dither));#endif#if defined(PNG_READ_GAMMA_SUPPORTED)/* Handle gamma correction. Screen_gamma=(display_exponent) */#ifdef PNG_FLOATING_POINT_SUPPORTEDextern PNG_EXPORT(void,png_set_gamma) PNGARG((png_structp png_ptr, double screen_gamma, double default_file_gamma));#endif#endif#if defined(PNG_READ_EMPTY_PLTE_SUPPORTED) || \ defined(PNG_WRITE_EMPTY_PLTE_SUPPORTED)/* Permit or disallow empty PLTE (0: not permitted, 1: permitted) *//* Deprecated and will be removed. Use png_permit_mng_features() instead. */extern PNG_EXPORT(void,png_permit_empty_plte) PNGARG((png_structp png_ptr, int empty_plte_permitted));#endif#if defined(PNG_WRITE_FLUSH_SUPPORTED)/* Set how many lines between output flushes - 0 for no flushing */extern PNG_EXPORT(void,png_set_flush) PNGARG((png_structp png_ptr, int nrows));/* Flush the current PNG output buffer */extern PNG_EXPORT(void,png_write_flush) PNGARG((png_structp png_ptr));#endif/* optional update palette with requested transformations */extern PNG_EXPORT(void,png_start_read_image) PNGARG((png_structp png_ptr));/* optional call to update the users info structure */extern PNG_EXPORT(void,png_read_update_info) PNGARG((png_structp png_ptr, png_infop info_ptr));/* read a one or more rows of image data.*/extern PNG_EXPORT(void,png_read_rows) PNGARG((png_structp png_ptr, png_bytepp row, png_bytepp display_row, png_uint_32 num_rows));/* read a row of data.*/extern PNG_EXPORT(void,png_read_row) PNGARG((png_structp png_ptr, png_bytep row, png_bytep display_row));/* read the whole image into memory at once. */extern PNG_EXPORT(void,png_read_image) PNGARG((png_structp png_ptr, png_bytepp image));/* write a row of image data */extern PNG_EXPORT(void,png_write_row) PNGARG((png_structp png_ptr, png_bytep row));/* write a few rows of image data */extern PNG_EXPORT(void,png_write_rows) PNGARG((png_structp png_ptr, png_bytepp row, png_uint_32 num_rows));/* write the image data */extern PNG_EXPORT(void,png_write_image) PNGARG((png_structp png_ptr, png_bytepp image));/* writes the end of the PNG file. */extern PNG_EXPORT(void,png_write_end) PNGARG((png_structp png_ptr, png_infop info_ptr));/* read the end of the PNG file. */extern PNG_EXPORT(void,png_read_end) PNGARG((png_structp png_ptr, png_infop info_ptr));/* free any memory associated with the png_info_struct */extern PNG_EXPORT(void,png_destroy_info_struct) PNGARG((png_structp png_ptr, png_infopp info_ptr_ptr));/* free any memory associated with the png_struct and the png_info_structs */extern PNG_EXPORT(void,png_destroy_read_struct) PNGARG((png_structpp png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr));/* free all memory used by the read (old method - NOT DLL EXPORTED) */extern void png_read_destroy PNGARG((png_structp png_ptr, png_infop info_ptr, png_infop end_info_ptr));/* free any memory associated with the png_struct and the png_info_structs */extern PN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -