Unit KambiPng

DescriptionusesClasses, Interfaces, Objects and RecordsFunctions and ProceduresTypesConstantsVariables

Description

Bindings to libpng.

Png.pas from FPC packages/extra/libpng/png.pp modified by Kambi.

Detailed list of my modifications:

Some comments:

uses

Overview

Classes, Interfaces, Objects and Records

Name Description
record png_color Commented out by Kambi:

var png_libpng_ver : array[0..11] of char; cvar; external; png_pass_start : array[0..6] of longint; cvar; external; png_pass_inc : array[0..6] of longint; cvar; external; png_pass_ystart : array[0..6] of longint;cvar; external; png_pass_yinc : array[0..6] of longint; cvar; external; png_pass_mask : array[0..6] of longint; cvar; external; png_pass_dsp_mask : array[0..6] of longint; cvar; external;

record png_color_16  
record png_color_8  
record png_sPLT_entry  
record png_sPLT_t  
record png_text  
record png_time  
record png_unknown_chunk  
record png_info  
record png_row_info  
record png_struct_def  

Functions and Procedures

function KambiPngInited: boolean;

Types

size_t = longint;
time_t = longint;
int = longint;
z_stream = TZStream;
voidp = pointer;
png_uint_32 = LongWord;
png_int_32 = longint;
png_uint_16 = word;
png_int_16 = smallint;
png_byte = byte;
ppng_uint_32 = ˆpng_uint_32;
ppng_int_32 = ˆpng_int_32;
ppng_uint_16 = ˆpng_uint_16;
ppng_int_16 = ˆpng_int_16;
ppng_byte = ˆpng_byte;
pppng_uint_32 = ˆppng_uint_32;
pppng_int_32 = ˆppng_int_32;
pppng_uint_16 = ˆppng_uint_16;
pppng_int_16 = ˆppng_int_16;
pppng_byte = ˆppng_byte;
png_size_t = size_t;
png_fixed_point = png_int_32;
ppng_fixed_point = ˆpng_fixed_point;
pppng_fixed_point = ˆppng_fixed_point;
png_voidp = pointer;
png_bytep = Ppng_byte;
ppng_bytep = ˆpng_bytep;
png_uint_32p = Ppng_uint_32;
png_int_32p = Ppng_int_32;
png_uint_16p = Ppng_uint_16;
ppng_uint_16p = ˆpng_uint_16p;
png_int_16p = Ppng_int_16;
png_const_charp = Pchar;
png_charp = Pchar;
ppng_charp = ˆpng_charp;
png_fixed_point_p = Ppng_fixed_point;
TFile = Pointer;
png_FILE_p = ˆFILE;
png_doublep = Pdouble;
png_bytepp = PPpng_byte;
png_uint_32pp = PPpng_uint_32;
png_int_32pp = PPpng_int_32;
png_uint_16pp = PPpng_uint_16;
png_int_16pp = PPpng_int_16;
png_const_charpp = PPchar;
png_charpp = PPchar;
ppng_charpp = ˆpng_charpp;
png_fixed_point_pp = PPpng_fixed_point;
PPDouble = ˆPDouble;
png_doublepp = PPdouble;
PPPChar = ˆPPCHar;
png_charppp = PPPchar;
Pcharf = Pchar;
PPcharf = ˆPcharf;
png_zcharp = Pcharf;
png_zcharpp = PPcharf;
png_zstreamp = Pzstream;
ppng_color = ˆpng_color;
pppng_color = ˆppng_color;
png_color_struct = png_color;
png_colorp = Ppng_color;
ppng_colorp = ˆpng_colorp;
png_colorpp = PPpng_color;
ppng_color_16 = ˆpng_color_16 ;
pppng_color_16 = ˆppng_color_16 ;
png_color_16_struct = png_color_16;
png_color_16p = Ppng_color_16;
ppng_color_16p = ˆpng_color_16p;
png_color_16pp = PPpng_color_16;
ppng_color_8 = ˆpng_color_8;
pppng_color_8 = ˆppng_color_8;
png_color_8_struct = png_color_8;
png_color_8p = Ppng_color_8;
ppng_color_8p = ˆpng_color_8p;
png_color_8pp = PPpng_color_8;
ppng_sPLT_entry = ˆpng_sPLT_entry;
pppng_sPLT_entry = ˆppng_sPLT_entry;
png_sPLT_entry_struct = png_sPLT_entry;
png_sPLT_entryp = Ppng_sPLT_entry;
png_sPLT_entrypp = PPpng_sPLT_entry;
ppng_sPLT_t = ˆpng_sPLT_t;
pppng_sPLT_t = ˆppng_sPLT_t;
png_sPLT_struct = png_sPLT_t;
png_sPLT_tp = Ppng_sPLT_t;
png_sPLT_tpp = PPpng_sPLT_t;
ppng_text = ˆpng_text;
pppng_text = ˆppng_text;
png_text_struct = png_text;
png_textp = Ppng_text;
ppng_textp = ˆpng_textp;
png_textpp = PPpng_text;
ppng_time = ˆpng_time;
pppng_time = ˆppng_time;
png_time_struct = png_time;
png_timep = Ppng_time;
PPNG_TIMEP = ˆPNG_TIMEP;
png_timepp = PPpng_time;
ppng_unknown_chunk = ˆpng_unknown_chunk;
pppng_unknown_chunk = ˆppng_unknown_chunk;
png_unknown_chunk_t = png_unknown_chunk;
png_unknown_chunkp = Ppng_unknown_chunk;
png_unknown_chunkpp = PPpng_unknown_chunk;
ppng_info = ˆpng_info;
pppng_info = ˆppng_info;
png_info_struct = png_info;
png_infop = Ppng_info;
png_infopp = PPpng_info;
ppng_row_info = ˆpng_row_info;
pppng_row_info = ˆppng_row_info;
png_row_info_struct = png_row_info;
png_row_infop = Ppng_row_info;
png_row_infopp = PPpng_row_info;
png_structp = ˆpng_struct;
png_error_ptr = Procedure(Arg1 : png_structp; Arg2 : png_const_charp); cdecl;
png_rw_ptr = Procedure(Arg1 : png_structp; Arg2 : png_bytep; Arg3 : png_size_t); cdecl;
png_flush_ptr = procedure (Arg1 : png_structp) ; cdecl;
png_read_status_ptr = procedure (Arg1 : png_structp; Arg2 : png_uint_32; Arg3: int); cdecl;
png_write_status_ptr = Procedure (Arg1 : png_structp; Arg2: png_uint_32;Arg3 : int) ; cdecl;
png_progressive_info_ptr = Procedure (Arg1 : png_structp; Arg2 : png_infop) ; cdecl;
png_progressive_end_ptr = Procedure (Arg1 : png_structp; Arg2 : png_infop) ; cdecl;
png_progressive_row_ptr = Procedure (Arg1 : png_structp; Arg2 : png_bytep; Arg3 : png_uint_32; Arg4 : int) ; cdecl;
png_user_transform_ptr = Procedure (Arg1 : png_structp; Arg2 : png_row_infop; Arg3 : png_bytep) ; cdecl;
png_user_chunk_ptr = Function (Arg1 : png_structp; Arg2 : png_unknown_chunkp): longint; cdecl;
png_unknown_chunk_ptr = Procedure (Arg1 : png_structp); cdecl;
png_malloc_ptr = Function (Arg1 : png_structp; Arg2 : png_size_t) : png_voidp ; cdecl;
png_free_ptr = Procedure (Arg1 : png_structp; Arg2 : png_voidp) ; cdecl;
ppng_struct_def = ˆpng_struct_def;
pppng_struct_def = ˆppng_struct_def;
png_struct = png_struct_def;
ppng_struct = ˆpng_struct;
pppng_struct = ˆppng_struct;
version_1_0_8 = png_structp;
png_structpp = PPpng_struct;

Constants

PNG_LIBPNG_VER_STRING = '1.2.13';
PNG_LIBPNG_VER_MAJOR = 1;
PNG_LIBPNG_VER_MINOR = 2;
PNG_LIBPNG_VER_RELEASE= 13;
PNG_TEXT_COMPRESSION_NONE_WR = -3;
PNG_TEXT_COMPRESSION_zTXt_WR = -2;
PNG_TEXT_COMPRESSION_NONE = -1;
PNG_TEXT_COMPRESSION_zTXt = 0;
PNG_ITXT_COMPRESSION_NONE = 1;
PNG_ITXT_COMPRESSION_zTXt = 2;
PNG_TEXT_COMPRESSION_LAST = 3;
PNG_MAX_UINT = High(LongWord);
PNG_COLOR_MASK_PALETTE = 1;
PNG_COLOR_MASK_COLOR = 2;
PNG_COLOR_MASK_ALPHA = 4;
PNG_COLOR_TYPE_GRAY = 0;
PNG_COLOR_TYPE_PALETTE = (PNG_COLOR_MASK_COLOR or PNG_COLOR_MASK_PALETTE);
PNG_COLOR_TYPE_RGB = (PNG_COLOR_MASK_COLOR);
PNG_COLOR_TYPE_RGB_ALPHA = (PNG_COLOR_MASK_COLOR or PNG_COLOR_MASK_ALPHA);
PNG_COLOR_TYPE_GRAY_ALPHA = (PNG_COLOR_MASK_ALPHA);
PNG_COLOR_TYPE_RGBA = PNG_COLOR_TYPE_RGB_ALPHA;
PNG_COLOR_TYPE_GA = PNG_COLOR_TYPE_GRAY_ALPHA;
PNG_COMPRESSION_TYPE_BASE = 0 ;
PNG_COMPRESSION_TYPE_DEFAULT = PNG_COMPRESSION_TYPE_BASE;
PNG_FILTER_TYPE_BASE = 0 ;
PNG_INTRAPIXEL_DIFFERENCING = 64 ;
PNG_FILTER_TYPE_DEFAULT = PNG_FILTER_TYPE_BASE;
PNG_INTERLACE_NONE = 0 ;
PNG_INTERLACE_ADAM7 = 1 ;
PNG_INTERLACE_LAST = 2 ;
PNG_OFFSET_PIXEL = 0 ;
PNG_OFFSET_MICROMETER = 1 ;
PNG_OFFSET_LAST = 2 ;
PNG_EQUATION_LINEAR = 0 ;
PNG_EQUATION_BASE_E = 1 ;
PNG_EQUATION_ARBITRARY = 2 ;
PNG_EQUATION_HYPERBOLIC = 3 ;
PNG_EQUATION_LAST = 4 ;
PNG_SCALE_UNKNOWN = 0 ;
PNG_SCALE_METER = 1 ;
PNG_SCALE_RADIAN = 2 ;
PNG_SCALE_LAST = 3 ;
PNG_RESOLUTION_UNKNOWN = 0 ;
PNG_RESOLUTION_METER = 1 ;
PNG_RESOLUTION_LAST = 2 ;
PNG_sRGB_INTENT_PERCEPTUAL =0;
PNG_sRGB_INTENT_RELATIVE =1;
PNG_sRGB_INTENT_SATURATION =2;
PNG_sRGB_INTENT_ABSOLUTE =3;
PNG_sRGB_INTENT_LAST = 4 ;
PNG_KEYWORD_MAX_LENGTH = 79;
PNG_MAX_PALETTE_LENGTH = 256;
PNG_INFO_gAMA = $0001;
PNG_INFO_sBIT = $0002;
PNG_INFO_cHRM = $0004;
PNG_INFO_PLTE = $0008;
PNG_INFO_tRNS = $0010;
PNG_INFO_bKGD = $0020;
PNG_INFO_hIST = $0040;
PNG_INFO_pHYs = $0080;
PNG_INFO_oFFs = $0100;
PNG_INFO_tIME = $0200;
PNG_INFO_pCAL = $0400;
PNG_INFO_sRGB = $0800 ;
PNG_INFO_iCCP = $1000 ;
PNG_INFO_sPLT = $2000 ;
PNG_INFO_sCAL = $4000 ;
PNG_INFO_IDAT = $8000 ;
PNG_TRANSFORM_IDENTITY = $0000 ;
PNG_TRANSFORM_STRIP_16 = $0001 ;
PNG_TRANSFORM_STRIP_ALPHA = $0002 ;
PNG_TRANSFORM_PACKING = $0004 ;
PNG_TRANSFORM_PACKSWAP = $0008 ;
PNG_TRANSFORM_EXPAND = $0010 ;
PNG_TRANSFORM_INVERT_MONO = $0020 ;
PNG_TRANSFORM_SHIFT = $0040 ;
PNG_TRANSFORM_BGR = $0080 ;
PNG_TRANSFORM_SWAP_ALPHA = $0100 ;
PNG_TRANSFORM_SWAP_ENDIAN = $0200 ;
PNG_TRANSFORM_INVERT_ALPHA = $0400 ;
PNG_TRANSFORM_STRIP_FILLER = $0800 ;
PNG_FLAG_MNG_EMPTY_PLTE = $01;
PNG_FLAG_MNG_FILTER_64 = $04;
PNG_ALL_MNG_FEATURES = $05;
PNG_FILLER_BEFORE =0;
PNG_FILLER_AFTER =1;
PNG_BACKGROUND_GAMMA_UNKNOWN =0;
PNG_BACKGROUND_GAMMA_SCREEN =1;
PNG_BACKGROUND_GAMMA_FILE =2;
PNG_BACKGROUND_GAMMA_UNIQUE =3;
PNG_CRC_DEFAULT = 0 ;
PNG_CRC_ERROR_QUIT = 1 ;
PNG_CRC_WARN_DISCARD = 2 ;
PNG_CRC_WARN_USE = 3 ;
PNG_CRC_QUIET_USE = 4 ;
PNG_CRC_NO_CHANGE = 5 ;
PNG_NO_FILTERS = $00;
PNG_FILTER_NONE = $08;
PNG_FILTER_SUB = $10;
PNG_FILTER_UP = $20;
PNG_FILTER_AVG = $40;
PNG_FILTER_PAETH = $80;
PNG_ALL_FILTERS = (PNG_FILTER_NONE or PNG_FILTER_SUB or PNG_FILTER_UP or PNG_FILTER_AVG or PNG_FILTER_PAETH);
PNG_FILTER_VALUE_NONE =0;
PNG_FILTER_VALUE_SUB =1;
PNG_FILTER_VALUE_UP =2;
PNG_FILTER_VALUE_AVG =3;
PNG_FILTER_VALUE_PAETH =4;
PNG_FILTER_VALUE_LAST =5;
PNG_FILTER_HEURISTIC_DEFAULT = 0 ;
PNG_FILTER_HEURISTIC_UNWEIGHTED = 1 ;
PNG_FILTER_HEURISTIC_WEIGHTED = 2 ;
PNG_FILTER_HEURISTIC_LAST = 3 ;

Variables

png_access_version_number: function: png_uint_32; cdecl;
png_set_sig_bytes: procedure(png_ptr: png_structp; num_bytes: longint); cdecl;
png_sig_cmp: function(sig: png_bytep; start: png_size_t; num_to_check: png_size_t): longint; cdecl;
png_check_sig: function(sig: png_bytep; num: longint): longint; cdecl;
png_create_read_struct: function(user_png_ver: png_const_charp; error_ptr: png_voidp; error_fn: png_error_ptr; warn_fn: png_error_ptr): png_structp; cdecl;
png_create_write_struct: function(user_png_ver: png_const_charp; error_ptr: png_voidp; error_fn: png_error_ptr; warn_fn: png_error_ptr): png_structp; cdecl;
png_get_compression_buffer_size: function(png_ptr: png_structp): png_uint_32; cdecl;
png_set_compression_buffer_size: procedure(png_ptr: png_structp; size: png_uint_32); cdecl;
png_reset_zstream: function(png_ptr: png_structp): longint; cdecl;
png_write_chunk: procedure(png_ptr: png_structp; chunk_name: png_bytep; data: png_bytep; length: png_size_t); cdecl;
png_write_chunk_start: procedure(png_ptr: png_structp; chunk_name: png_bytep; length: png_uint_32); cdecl;
png_write_chunk_data: procedure(png_ptr: png_structp; data: png_bytep; length: png_size_t); cdecl;
png_write_chunk_end: procedure(png_ptr: png_structp); cdecl;
png_create_info_struct: function(png_ptr: png_structp): png_infop; cdecl;
png_info_init: procedure(info_ptr: png_infop); cdecl;
png_write_info_before_PLTE: procedure(png_ptr: png_structp; info_ptr: png_infop); cdecl;
png_write_info: procedure(png_ptr: png_structp; info_ptr: png_infop); cdecl;
png_read_info: procedure(png_ptr: png_structp; info_ptr: png_infop); cdecl;
png_convert_to_rfc1123: function(png_ptr: png_structp; ptime: png_timep): png_charp; cdecl;
png_convert_from_struct_tm: procedure(ptime: png_timep; ttime: Pointer); cdecl;
png_convert_from_time_t: procedure(ptime: png_timep; ttime: time_t); cdecl;
png_set_expand: procedure(png_ptr: png_structp); cdecl;
png_set_gray_1_2_4_to_8: procedure(png_ptr: png_structp); cdecl;
png_set_palette_to_rgb: procedure(png_ptr: png_structp); cdecl;
png_set_tRNS_to_alpha: procedure(png_ptr: png_structp); cdecl;
png_set_bgr: procedure(png_ptr: png_structp); cdecl;
png_set_gray_to_rgb: procedure(png_ptr: png_structp); cdecl;
png_set_rgb_to_gray: procedure(png_ptr: png_structp; error_action: longint; red: double; green: double); cdecl;
png_set_rgb_to_gray_fixed: procedure(png_ptr: png_structp; error_action: longint; red: png_fixed_point; green: png_fixed_point); cdecl;
png_get_rgb_to_gray_status: function(png_ptr: png_structp): png_byte; cdecl;
png_build_grayscale_palette: procedure(bit_depth: longint; palette: png_colorp); cdecl;
png_set_strip_alpha: procedure(png_ptr: png_structp); cdecl;
png_set_swap_alpha: procedure(png_ptr: png_structp); cdecl;
png_set_invert_alpha: procedure(png_ptr: png_structp); cdecl;
png_set_filler: procedure(png_ptr: png_structp; filler: png_uint_32; flags: longint); cdecl;
png_set_swap: procedure(png_ptr: png_structp); cdecl;
png_set_packing: procedure(png_ptr: png_structp); cdecl;
png_set_packswap: procedure(png_ptr: png_structp); cdecl;
png_set_shift: procedure(png_ptr: png_structp; true_bits: png_color_8p); cdecl;
png_set_interlace_handling: function(png_ptr: png_structp): longint; cdecl;
png_set_invert_mono: procedure(png_ptr: png_structp); cdecl;
png_set_background: procedure(png_ptr: png_structp; background_color: png_color_16p; background_gamma_code: longint; need_expand: longint; background_gamma: double); cdecl;
png_set_strip_16: procedure(png_ptr: png_structp); cdecl;
png_set_dither: procedure(png_ptr: png_structp; palette: png_colorp; num_palette: longint; maximum_colors: longint; histogram: png_uint_16p; full_dither: longint); cdecl;
png_set_gamma: procedure(png_ptr: png_structp; screen_gamma: double; default_file_gamma: double); cdecl;
png_permit_empty_plte: procedure(png_ptr: png_structp; empty_plte_permitted: longint); cdecl;
png_set_flush: procedure(png_ptr: png_structp; nrows: longint); cdecl;
png_write_flush: procedure(png_ptr: png_structp); cdecl;
png_start_read_image: procedure(png_ptr: png_structp); cdecl;
png_read_update_info: procedure(png_ptr: png_structp; info_ptr: png_infop); cdecl;
png_read_rows: procedure(png_ptr: png_structp; row: png_bytepp; display_row: png_bytepp; num_rows: png_uint_32); cdecl;
png_read_row: procedure(png_ptr: png_structp; row: png_bytep; display_row: png_bytep); cdecl;
png_read_image: procedure(png_ptr: png_structp; image: png_bytepp); cdecl;
png_write_row: procedure(png_ptr: png_structp; row: png_bytep); cdecl;
png_write_rows: procedure(png_ptr: png_structp; row: png_bytepp; num_rows: png_uint_32); cdecl;
png_write_image: procedure(png_ptr: png_structp; image: png_bytepp); cdecl;
png_write_end: procedure(png_ptr: png_structp; info_ptr: png_infop); cdecl;
png_read_end: procedure(png_ptr: png_structp; info_ptr: png_infop); cdecl;
png_destroy_info_struct: procedure(png_ptr: png_structp; info_ptr_ptr: png_infopp); cdecl;
png_destroy_read_struct: procedure(png_ptr_ptr: png_structpp; info_ptr_ptr: png_infopp; end_info_ptr_ptr: png_infopp); cdecl;
png_destroy_write_struct: procedure(png_ptr_ptr: png_structpp; info_ptr_ptr: png_infopp); cdecl;
png_set_crc_action: procedure(png_ptr: png_structp; crit_action: longint; ancil_action: longint); cdecl;
png_set_filter: procedure(png_ptr: png_structp; method: longint; filters: longint); cdecl;
png_set_filter_heuristics: procedure(png_ptr: png_structp; heuristic_method: longint; num_weights: longint; filter_weights: png_doublep; filter_costs: png_doublep); cdecl;
png_set_compression_level: procedure(png_ptr: png_structp; level: longint); cdecl;
png_set_compression_mem_level: procedure(png_ptr: png_structp; mem_level: longint); cdecl;
png_set_compression_strategy: procedure(png_ptr: png_structp; strategy: longint); cdecl;
png_set_compression_window_bits: procedure(png_ptr: png_structp; window_bits: longint); cdecl;
png_set_compression_method: procedure(png_ptr: png_structp; method: longint); cdecl;
png_init_io: procedure(png_ptr: png_structp; fp: png_FILE_p); cdecl;
png_set_error_fn: procedure(png_ptr: png_structp; error_ptr: png_voidp; error_fn: png_error_ptr; warning_fn: png_error_ptr); cdecl;
png_get_error_ptr: function(png_ptr: png_structp): png_voidp; cdecl;
png_set_write_fn: procedure(png_ptr: png_structp; io_ptr: png_voidp; write_data_fn: png_rw_ptr; output_flush_fn: png_flush_ptr); cdecl;
png_set_read_fn: procedure(png_ptr: png_structp; io_ptr: png_voidp; read_data_fn: png_rw_ptr); cdecl;
png_get_io_ptr: function(png_ptr: png_structp): png_voidp; cdecl;
png_set_read_status_fn: procedure(png_ptr: png_structp; read_row_fn: png_read_status_ptr); cdecl;
png_set_write_status_fn: procedure(png_ptr: png_structp; write_row_fn: png_write_status_ptr); cdecl;
png_set_read_user_transform_fn: procedure(png_ptr: png_structp; read_user_transform_fn: png_user_transform_ptr); cdecl;
png_set_write_user_transform_fn: procedure(png_ptr: png_structp; write_user_transform_fn: png_user_transform_ptr); cdecl;
png_set_user_transform_info: procedure(png_ptr: png_structp; user_transform_ptr: png_voidp; user_transform_depth: longint; user_transform_channels: longint); cdecl;
png_get_user_transform_ptr: function(png_ptr: png_structp): png_voidp; cdecl;
png_set_read_user_chunk_fn: procedure(png_ptr: png_structp; user_chunk_ptr: png_voidp; read_user_chunk_fn: png_user_chunk_ptr); cdecl;
png_get_user_chunk_ptr: function(png_ptr: png_structp): png_voidp; cdecl;
png_set_progressive_read_fn: procedure(png_ptr: png_structp; progressive_ptr: png_voidp; info_fn: png_progressive_info_ptr; row_fn: png_progressive_row_ptr; end_fn: png_progressive_end_ptr); cdecl;
png_get_progressive_ptr: function(png_ptr: png_structp): png_voidp; cdecl;
png_process_data: procedure(png_ptr: png_structp; info_ptr: png_infop; buffer: png_bytep; buffer_size: png_size_t); cdecl;
png_progressive_combine_row: procedure(png_ptr: png_structp; old_row: png_bytep; new_row: png_bytep); cdecl;
png_malloc: function(png_ptr: png_structp; size: png_uint_32): png_voidp; cdecl;
png_free: procedure(png_ptr: png_structp; ptr: png_voidp); cdecl;
png_free_data: procedure(png_ptr: png_structp; info_ptr: png_infop; free_me: png_uint_32; num: longint); cdecl;
png_data_freer: procedure(png_ptr: png_structp; info_ptr: png_infop; freer: longint; mask: png_uint_32); cdecl;
png_memcpy_check: function(png_ptr: png_structp; s1: png_voidp; s2: png_voidp; size: png_uint_32): png_voidp; cdecl;
png_memset_check: function(png_ptr: png_structp; s1: png_voidp; value: longint; size: png_uint_32): png_voidp; cdecl;
png_error: procedure(png_ptr: png_structp; error: png_const_charp); cdecl;
png_chunk_error: procedure(png_ptr: png_structp; error: png_const_charp); cdecl;
png_warning: procedure(png_ptr: png_structp; message: png_const_charp); cdecl;
png_chunk_warning: procedure(png_ptr: png_structp; message: png_const_charp); cdecl;
png_get_valid: function(png_ptr: png_structp; info_ptr: png_infop; flag: png_uint_32): png_uint_32; cdecl;
png_get_rowbytes: function(png_ptr: png_structp; info_ptr: png_infop): png_uint_32; cdecl;
png_get_rows: function(png_ptr: png_structp; info_ptr: png_infop): png_bytepp; cdecl;
png_set_rows: procedure(png_ptr: png_structp; info_ptr: png_infop; row_pointers: png_bytepp); cdecl;
png_get_channels: function(png_ptr: png_structp; info_ptr: png_infop): png_byte; cdecl;
png_get_image_width: function(png_ptr: png_structp; info_ptr: png_infop): png_uint_32; cdecl;
png_get_image_height: function(png_ptr: png_structp; info_ptr: png_infop): png_uint_32; cdecl;
png_get_bit_depth: function(png_ptr: png_structp; info_ptr: png_infop): png_byte; cdecl;
png_get_color_type: function(png_ptr: png_structp; info_ptr: png_infop): png_byte; cdecl;
png_get_filter_type: function(png_ptr: png_structp; info_ptr: png_infop): png_byte; cdecl;
png_get_interlace_type: function(png_ptr: png_structp; info_ptr: png_infop): png_byte; cdecl;
png_get_compression_type: function(png_ptr: png_structp; info_ptr: png_infop): png_byte; cdecl;
png_get_pixels_per_meter: function(png_ptr: png_structp; info_ptr: png_infop): png_uint_32; cdecl;
png_get_x_pixels_per_meter: function(png_ptr: png_structp; info_ptr: png_infop): png_uint_32; cdecl;
png_get_y_pixels_per_meter: function(png_ptr: png_structp; info_ptr: png_infop): png_uint_32; cdecl;
png_get_pixel_aspect_ratio: function(png_ptr: png_structp; info_ptr: png_infop): double; cdecl;
png_get_x_offset_pixels: function(png_ptr: png_structp; info_ptr: png_infop): png_int_32; cdecl;
png_get_y_offset_pixels: function(png_ptr: png_structp; info_ptr: png_infop): png_int_32; cdecl;
png_get_x_offset_microns: function(png_ptr: png_structp; info_ptr: png_infop): png_int_32; cdecl;
png_get_y_offset_microns: function(png_ptr: png_structp; info_ptr: png_infop): png_int_32; cdecl;
png_get_signature: function(png_ptr: png_structp; info_ptr: png_infop): png_bytep; cdecl;
png_get_bKGD: function(png_ptr: png_structp; info_ptr: png_infop; background: Ppng_color_16p): png_uint_32; cdecl;
png_set_bKGD: procedure(png_ptr: png_structp; info_ptr: png_infop; background: png_color_16p); cdecl;
png_get_cHRM: function(png_ptr: png_structp; info_ptr: png_infop; white_x: Pdouble; white_y: Pdouble; red_x: Pdouble; red_y: Pdouble; green_x: Pdouble; green_y: Pdouble; blue_x: Pdouble; blue_y: Pdouble): png_uint_32; cdecl;
png_get_cHRM_fixed: function(png_ptr: png_structp; info_ptr: png_infop; int_white_x: Ppng_fixed_point; int_white_y: Ppng_fixed_point; int_red_x: Ppng_fixed_point; int_red_y: Ppng_fixed_point; int_green_x: Ppng_fixed_point; int_green_y: Ppng_fixed_point; int_blue_x: Ppng_fixed_point; int_blue_y: Ppng_fixed_point): png_uint_32; cdecl;
png_set_cHRM: procedure(png_ptr: png_structp; info_ptr: png_infop; white_x: double; white_y: double; red_x: double; red_y: double; green_x: double; green_y: double; blue_x: double; blue_y: double); cdecl;
png_set_cHRM_fixed: procedure(png_ptr: png_structp; info_ptr: png_infop; 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_point); cdecl;
png_get_gAMA: function(png_ptr: png_structp; info_ptr: png_infop; file_gamma: Pdouble): png_uint_32; cdecl;
png_get_gAMA_fixed: function(png_ptr: png_structp; info_ptr: png_infop; int_file_gamma: Ppng_fixed_point): png_uint_32; cdecl;
png_set_gAMA: procedure(png_ptr: png_structp; info_ptr: png_infop; file_gamma: double); cdecl;
png_set_gAMA_fixed: procedure(png_ptr: png_structp; info_ptr: png_infop; int_file_gamma: png_fixed_point); cdecl;
png_get_hIST: function(png_ptr: png_structp; info_ptr: png_infop; hist: Ppng_uint_16p): png_uint_32; cdecl;
png_set_hIST: procedure(png_ptr: png_structp; info_ptr: png_infop; hist: png_uint_16p); cdecl;
png_get_IHDR: function(png_ptr: png_structp; info_ptr: png_infop; width: Ppng_uint_32; height: Ppng_uint_32; bit_depth: Plongint; color_type: Plongint; interlace_type: Plongint; compression_type: Plongint; filter_type: Plongint): png_uint_32; cdecl;
png_set_IHDR: procedure(png_ptr: png_structp; info_ptr: png_infop; width: png_uint_32; height: png_uint_32; bit_depth: longint; color_type: longint; interlace_type: longint; compression_type: longint; filter_type: longint); cdecl;
png_get_oFFs: function(png_ptr: png_structp; info_ptr: png_infop; offset_x: Ppng_int_32; offset_y: Ppng_int_32; unit_type: Plongint): png_uint_32; cdecl;
png_set_oFFs: procedure(png_ptr: png_structp; info_ptr: png_infop; offset_x: png_int_32; offset_y: png_int_32; unit_type: longint); cdecl;
png_get_pCAL: function(png_ptr: png_structp; info_ptr: png_infop; purpose: Ppng_charp; X0: Ppng_int_32; X1: Ppng_int_32; atype: Plongint; nparams: Plongint; units: Ppng_charp; params: Ppng_charpp): png_uint_32; cdecl;
png_set_pCAL: procedure(png_ptr: png_structp; info_ptr: png_infop; purpose: png_charp; X0: png_int_32; X1: png_int_32; atype: longint; nparams: longint; units: png_charp; params: png_charpp); cdecl;
png_get_pHYs: function(png_ptr: png_structp; info_ptr: png_infop; res_x: Ppng_uint_32; res_y: Ppng_uint_32; unit_type: Plongint): png_uint_32; cdecl;
png_set_pHYs: procedure(png_ptr: png_structp; info_ptr: png_infop; res_x: png_uint_32; res_y: png_uint_32; unit_type: longint); cdecl;
png_get_PLTE: function(png_ptr: png_structp; info_ptr: png_infop; palette: Ppng_colorp; num_palette: Plongint): png_uint_32; cdecl;
png_set_PLTE: procedure(png_ptr: png_structp; info_ptr: png_infop; palette: png_colorp; num_palette: longint); cdecl;
png_get_sBIT: function(png_ptr: png_structp; info_ptr: png_infop; sig_bit: Ppng_color_8p): png_uint_32; cdecl;
png_set_sBIT: procedure(png_ptr: png_structp; info_ptr: png_infop; sig_bit: png_color_8p); cdecl;
png_get_sRGB: function(png_ptr: png_structp; info_ptr: png_infop; intent: Plongint): png_uint_32; cdecl;
png_set_sRGB: procedure(png_ptr: png_structp; info_ptr: png_infop; intent: longint); cdecl;
png_set_sRGB_gAMA_and_cHRM: procedure(png_ptr: png_structp; info_ptr: png_infop; intent: longint); cdecl;
png_get_iCCP: function(png_ptr: png_structp; info_ptr: png_infop; name: png_charpp; compression_type: Plongint; profile: png_charpp; proflen: Ppng_uint_32): png_uint_32; cdecl;
png_set_iCCP: procedure(png_ptr: png_structp; info_ptr: png_infop; name: png_charp; compression_type: longint; profile: png_charp; proflen: png_uint_32); cdecl;
png_get_sPLT: function(png_ptr: png_structp; info_ptr: png_infop; entries: png_sPLT_tpp): png_uint_32; cdecl;
png_set_sPLT: procedure(png_ptr: png_structp; info_ptr: png_infop; entries: png_sPLT_tp; nentries: longint); cdecl;
png_get_text: function(png_ptr: png_structp; info_ptr: png_infop; text_ptr: Ppng_textp; num_text: Plongint): png_uint_32; cdecl;
png_set_text: procedure(png_ptr: png_structp; info_ptr: png_infop; text_ptr: png_textp; num_text: longint); cdecl;
png_get_tIME: function(png_ptr: png_structp; info_ptr: png_infop; mod_time: Ppng_timep): png_uint_32; cdecl;
png_set_tIME: procedure(png_ptr: png_structp; info_ptr: png_infop; mod_time: png_timep); cdecl;
png_get_tRNS: function(png_ptr: png_structp; info_ptr: png_infop; trans: Ppng_bytep; num_trans: Plongint; trans_values: Ppng_color_16p): png_uint_32; cdecl;
png_set_tRNS: procedure(png_ptr: png_structp; info_ptr: png_infop; trans: png_bytep; num_trans: longint; trans_values: png_color_16p); cdecl;
png_get_sCAL: function(png_ptr: png_structp; info_ptr: png_infop; aunit: Plongint; width: Pdouble; height: Pdouble): png_uint_32; cdecl;
png_set_sCAL: procedure(png_ptr: png_structp; info_ptr: png_infop; aunit: longint; width: double; height: double); cdecl;
png_set_keep_unknown_chunks: procedure(png_ptr: png_structp; keep: longint; chunk_list: png_bytep; num_chunks: longint); cdecl;
png_set_unknown_chunks: procedure(png_ptr: png_structp; info_ptr: png_infop; unknowns: png_unknown_chunkp; num_unknowns: longint); cdecl;
png_set_unknown_chunk_location: procedure(png_ptr: png_structp; info_ptr: png_infop; chunk: longint; location: longint); cdecl;
png_get_unknown_chunks: function(png_ptr: png_structp; info_ptr: png_infop; entries: png_unknown_chunkpp): png_uint_32; cdecl;
png_set_invalid: procedure(png_ptr: png_structp; info_ptr: png_infop; mask: longint); cdecl;
png_read_png: procedure(png_ptr: png_structp; info_ptr: png_infop; transforms: longint; params: voidp); cdecl;
png_write_png: procedure(png_ptr: png_structp; info_ptr: png_infop; transforms: longint; params: voidp); cdecl;
png_get_header_ver: function(png_ptr: png_structp): png_charp; cdecl;
png_get_header_version: function(png_ptr: png_structp): png_charp; cdecl;

Description

Functions and Procedures

function KambiPngInited: boolean;

This returns true if libpng was available and all png_xxx functions in this unit are inited to non-nil values, so you can just use libpng.

It returns false if libpng library was not available (or maybe the required version was not available). Then all png_xxx functions in this unit are nil and you can't use them.

Types

size_t = longint;
 
time_t = longint;
 
int = longint;
 
z_stream = TZStream;
 
voidp = pointer;
 
png_uint_32 = LongWord;
 
png_int_32 = longint;
 
png_uint_16 = word;
 
png_int_16 = smallint;
 
png_byte = byte;
 
ppng_uint_32 = ˆpng_uint_32;
 
ppng_int_32 = ˆpng_int_32;
 
ppng_uint_16 = ˆpng_uint_16;
 
ppng_int_16 = ˆpng_int_16;
 
ppng_byte = ˆpng_byte;
 
pppng_uint_32 = ˆppng_uint_32;
 
pppng_int_32 = ˆppng_int_32;
 
pppng_uint_16 = ˆppng_uint_16;
 
pppng_int_16 = ˆppng_int_16;
 
pppng_byte = ˆppng_byte;
 
png_size_t = size_t;
 
png_fixed_point = png_int_32;
 
ppng_fixed_point = ˆpng_fixed_point;
 
pppng_fixed_point = ˆppng_fixed_point;
 
png_voidp = pointer;
 
png_bytep = Ppng_byte;
 
ppng_bytep = ˆpng_bytep;
 
png_uint_32p = Ppng_uint_32;
 
png_int_32p = Ppng_int_32;
 
png_uint_16p = Ppng_uint_16;
 
ppng_uint_16p = ˆpng_uint_16p;
 
png_int_16p = Ppng_int_16;
 
png_const_charp = Pchar;

Const before type ignored

png_charp = Pchar;
 
ppng_charp = ˆpng_charp;
 
png_fixed_point_p = Ppng_fixed_point;
 
TFile = Pointer;
 
png_FILE_p = ˆFILE;
 
png_doublep = Pdouble;
 
png_bytepp = PPpng_byte;
 
png_uint_32pp = PPpng_uint_32;
 
png_int_32pp = PPpng_int_32;
 
png_uint_16pp = PPpng_uint_16;
 
png_int_16pp = PPpng_int_16;
 
png_const_charpp = PPchar;

Const before type ignored

png_charpp = PPchar;
 
ppng_charpp = ˆpng_charpp;
 
png_fixed_point_pp = PPpng_fixed_point;
 
PPDouble = ˆPDouble;
 
png_doublepp = PPdouble;
 
PPPChar = ˆPPCHar;
 
png_charppp = PPPchar;
 
Pcharf = Pchar;
 
PPcharf = ˆPcharf;
 
png_zcharp = Pcharf;
 
png_zcharpp = PPcharf;
 
png_zstreamp = Pzstream;
 
ppng_color = ˆpng_color;
 
pppng_color = ˆppng_color;
 
png_color_struct = png_color;
 
png_colorp = Ppng_color;
 
ppng_colorp = ˆpng_colorp;
 
png_colorpp = PPpng_color;
 
ppng_color_16 = ˆpng_color_16 ;
 
pppng_color_16 = ˆppng_color_16 ;
 
png_color_16_struct = png_color_16;
 
png_color_16p = Ppng_color_16;
 
ppng_color_16p = ˆpng_color_16p;
 
png_color_16pp = PPpng_color_16;
 
ppng_color_8 = ˆpng_color_8;
 
pppng_color_8 = ˆppng_color_8;
 
png_color_8_struct = png_color_8;
 
png_color_8p = Ppng_color_8;
 
ppng_color_8p = ˆpng_color_8p;
 
png_color_8pp = PPpng_color_8;
 
ppng_sPLT_entry = ˆpng_sPLT_entry;
 
pppng_sPLT_entry = ˆppng_sPLT_entry;
 
png_sPLT_entry_struct = png_sPLT_entry;
 
png_sPLT_entryp = Ppng_sPLT_entry;
 
png_sPLT_entrypp = PPpng_sPLT_entry;
 
ppng_sPLT_t = ˆpng_sPLT_t;
 
pppng_sPLT_t = ˆppng_sPLT_t;
 
png_sPLT_struct = png_sPLT_t;
 
png_sPLT_tp = Ppng_sPLT_t;
 
png_sPLT_tpp = PPpng_sPLT_t;
 
ppng_text = ˆpng_text;
 
pppng_text = ˆppng_text;
 
png_text_struct = png_text;
 
png_textp = Ppng_text;
 
ppng_textp = ˆpng_textp;
 
png_textpp = PPpng_text;
 
ppng_time = ˆpng_time;
 
pppng_time = ˆppng_time;
 
png_time_struct = png_time;