png.pp 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642
  1. {$ifndef NO_SMART_LINK}
  2. {$smartlink on}
  3. {$endif}
  4. unit png;
  5. interface
  6. { Automatically converted by H2Pas 0.99.15 from png.h }
  7. { The following command line parameters were used:
  8. png.h
  9. }
  10. {$PACKRECORDS C}
  11. uses
  12. zlib;
  13. Const
  14. {$ifdef windows}
  15. LibPng = 'libpng13'; // Library name
  16. { matching lib version for libpng13.dll, needed for initialization }
  17. PNG_LIBPNG_VER_STRING='1.2.12';
  18. {$else windows}
  19. LibPng = 'png'; // Library name
  20. { matching lib version for libpng, needed for initialization }
  21. PNG_LIBPNG_VER_STRING='1.2.12';
  22. {$endif windows}
  23. type
  24. size_t = longint;
  25. time_t = longint;
  26. int = longint;
  27. z_stream = TZStream;
  28. voidp = pointer;
  29. png_uint_32 = dword;
  30. png_int_32 = longint;
  31. png_uint_16 = word;
  32. png_int_16 = smallint;
  33. png_byte = byte;
  34. ppng_uint_32 = ^png_uint_32;
  35. ppng_int_32 = ^png_int_32;
  36. ppng_uint_16 = ^png_uint_16;
  37. ppng_int_16 = ^png_int_16;
  38. ppng_byte = ^png_byte;
  39. pppng_uint_32 = ^ppng_uint_32;
  40. pppng_int_32 = ^ppng_int_32;
  41. pppng_uint_16 = ^ppng_uint_16;
  42. pppng_int_16 = ^ppng_int_16;
  43. pppng_byte = ^ppng_byte;
  44. png_size_t = size_t;
  45. png_fixed_point = png_int_32;
  46. ppng_fixed_point = ^png_fixed_point;
  47. pppng_fixed_point = ^ppng_fixed_point;
  48. png_voidp = pointer;
  49. png_bytep = Ppng_byte;
  50. ppng_bytep = ^png_bytep;
  51. png_uint_32p = Ppng_uint_32;
  52. png_int_32p = Ppng_int_32;
  53. png_uint_16p = Ppng_uint_16;
  54. ppng_uint_16p = ^png_uint_16p;
  55. png_int_16p = Ppng_int_16;
  56. (* Const before type ignored *)
  57. png_const_charp = Pchar;
  58. png_charp = Pchar;
  59. ppng_charp = ^png_charp;
  60. png_fixed_point_p = Ppng_fixed_point;
  61. TFile = Pointer;
  62. png_FILE_p = ^FILE;
  63. png_doublep = Pdouble;
  64. png_bytepp = PPpng_byte;
  65. png_uint_32pp = PPpng_uint_32;
  66. png_int_32pp = PPpng_int_32;
  67. png_uint_16pp = PPpng_uint_16;
  68. png_int_16pp = PPpng_int_16;
  69. (* Const before type ignored *)
  70. png_const_charpp = PPchar;
  71. png_charpp = PPchar;
  72. ppng_charpp = ^png_charpp;
  73. png_fixed_point_pp = PPpng_fixed_point;
  74. PPDouble = ^PDouble;
  75. png_doublepp = PPdouble;
  76. PPPChar = ^PPCHar;
  77. png_charppp = PPPchar;
  78. Pcharf = Pchar;
  79. PPcharf = ^Pcharf;
  80. png_zcharp = Pcharf;
  81. png_zcharpp = PPcharf;
  82. png_zstreamp = Pzstream;
  83. var
  84. {$ifndef darwin}
  85. png_libpng_ver : array[0..11] of char; cvar; external;
  86. png_pass_start : array[0..6] of longint; cvar; external;
  87. png_pass_inc : array[0..6] of longint; cvar; external;
  88. png_pass_ystart : array[0..6] of longint; cvar; external;
  89. png_pass_yinc : array[0..6] of longint; cvar; external;
  90. png_pass_mask : array[0..6] of longint; cvar; external;
  91. png_pass_dsp_mask : array[0..6] of longint; cvar; external;
  92. {$else darwin}
  93. png_libpng_ver : array[0..11] of char; external LibPng name 'png_libpng_ver';
  94. png_pass_start : array[0..6] of longint; external LibPng name 'png_pass_start';
  95. png_pass_inc : array[0..6] of longint; external LibPng name 'png_pass_inc';
  96. png_pass_ystart : array[0..6] of longint; external LibPng name 'png_pass_ystart';
  97. png_pass_yinc : array[0..6] of longint; external LibPng name 'png_pass_yinc';
  98. png_pass_mask : array[0..6] of longint; external LibPng name 'png_pass_mask';
  99. png_pass_dsp_mask : array[0..6] of longint; external LibPng name 'png_pass_dsp_mask';
  100. {$endif darwin}
  101. Type
  102. png_color = record
  103. red : png_byte;
  104. green : png_byte;
  105. blue : png_byte;
  106. end;
  107. ppng_color = ^png_color;
  108. pppng_color = ^ppng_color;
  109. png_color_struct = png_color;
  110. png_colorp = Ppng_color;
  111. ppng_colorp = ^png_colorp;
  112. png_colorpp = PPpng_color;
  113. png_color_16 = record
  114. index : png_byte;
  115. red : png_uint_16;
  116. green : png_uint_16;
  117. blue : png_uint_16;
  118. gray : png_uint_16;
  119. end;
  120. ppng_color_16 = ^png_color_16 ;
  121. pppng_color_16 = ^ppng_color_16 ;
  122. png_color_16_struct = png_color_16;
  123. png_color_16p = Ppng_color_16;
  124. ppng_color_16p = ^png_color_16p;
  125. png_color_16pp = PPpng_color_16;
  126. png_color_8 = record
  127. red : png_byte;
  128. green : png_byte;
  129. blue : png_byte;
  130. gray : png_byte;
  131. alpha : png_byte;
  132. end;
  133. ppng_color_8 = ^png_color_8;
  134. pppng_color_8 = ^ppng_color_8;
  135. png_color_8_struct = png_color_8;
  136. png_color_8p = Ppng_color_8;
  137. ppng_color_8p = ^png_color_8p;
  138. png_color_8pp = PPpng_color_8;
  139. png_sPLT_entry = record
  140. red : png_uint_16;
  141. green : png_uint_16;
  142. blue : png_uint_16;
  143. alpha : png_uint_16;
  144. frequency : png_uint_16;
  145. end;
  146. ppng_sPLT_entry = ^png_sPLT_entry;
  147. pppng_sPLT_entry = ^ppng_sPLT_entry;
  148. png_sPLT_entry_struct = png_sPLT_entry;
  149. png_sPLT_entryp = Ppng_sPLT_entry;
  150. png_sPLT_entrypp = PPpng_sPLT_entry;
  151. png_sPLT_t = record
  152. name : png_charp;
  153. depth : png_byte;
  154. entries : png_sPLT_entryp;
  155. nentries : png_int_32;
  156. end;
  157. ppng_sPLT_t = ^png_sPLT_t;
  158. pppng_sPLT_t = ^ppng_sPLT_t;
  159. png_sPLT_struct = png_sPLT_t;
  160. png_sPLT_tp = Ppng_sPLT_t;
  161. png_sPLT_tpp = PPpng_sPLT_t;
  162. png_text = record
  163. compression : longint;
  164. key : png_charp;
  165. text : png_charp;
  166. text_length : png_size_t;
  167. end;
  168. ppng_text = ^png_text;
  169. pppng_text = ^ppng_text;
  170. png_text_struct = png_text;
  171. png_textp = Ppng_text;
  172. ppng_textp = ^png_textp;
  173. png_textpp = PPpng_text;
  174. png_time = record
  175. year : png_uint_16;
  176. month : png_byte;
  177. day : png_byte;
  178. hour : png_byte;
  179. minute : png_byte;
  180. second : png_byte;
  181. end;
  182. ppng_time = ^png_time;
  183. pppng_time = ^ppng_time;
  184. png_time_struct = png_time;
  185. png_timep = Ppng_time;
  186. PPNG_TIMEP = ^PNG_TIMEP;
  187. png_timepp = PPpng_time;
  188. png_unknown_chunk = record
  189. name : array[0..4] of png_byte;
  190. data : Ppng_byte;
  191. size : png_size_t;
  192. location : png_byte;
  193. end;
  194. ppng_unknown_chunk = ^png_unknown_chunk;
  195. pppng_unknown_chunk = ^ppng_unknown_chunk;
  196. png_unknown_chunk_t = png_unknown_chunk;
  197. png_unknown_chunkp = Ppng_unknown_chunk;
  198. png_unknown_chunkpp = PPpng_unknown_chunk;
  199. png_info = record
  200. width : png_uint_32;
  201. height : png_uint_32;
  202. valid : png_uint_32;
  203. rowbytes : png_uint_32;
  204. palette : png_colorp;
  205. num_palette : png_uint_16;
  206. num_trans : png_uint_16;
  207. bit_depth : png_byte;
  208. color_type : png_byte;
  209. compression_type : png_byte;
  210. filter_type : png_byte;
  211. interlace_type : png_byte;
  212. channels : png_byte;
  213. pixel_depth : png_byte;
  214. spare_byte : png_byte;
  215. signature : array[0..7] of png_byte;
  216. gamma : double;
  217. srgb_intent : png_byte;
  218. num_text : longint;
  219. max_text : longint;
  220. text : png_textp;
  221. mod_time : png_time;
  222. sig_bit : png_color_8;
  223. trans : png_bytep;
  224. trans_values : png_color_16;
  225. background : png_color_16;
  226. x_offset : png_int_32;
  227. y_offset : png_int_32;
  228. offset_unit_type : png_byte;
  229. x_pixels_per_unit : png_uint_32;
  230. y_pixels_per_unit : png_uint_32;
  231. phys_unit_type : png_byte;
  232. hist : png_uint_16p;
  233. x_white : double;
  234. y_white : double;
  235. x_red : double;
  236. y_red : double;
  237. x_green : double;
  238. y_green : double;
  239. x_blue : double;
  240. y_blue : double;
  241. pcal_purpose : png_charp;
  242. pcal_X0 : png_int_32;
  243. pcal_X1 : png_int_32;
  244. pcal_units : png_charp;
  245. pcal_params : png_charpp;
  246. pcal_type : png_byte;
  247. pcal_nparams : png_byte;
  248. free_me : png_uint_32;
  249. unknown_chunks : png_unknown_chunkp;
  250. unknown_chunks_num : png_size_t;
  251. iccp_name : png_charp;
  252. iccp_profile : png_charp;
  253. iccp_proflen : png_uint_32;
  254. iccp_compression : png_byte;
  255. splt_palettes : png_sPLT_tp;
  256. splt_palettes_num : png_uint_32;
  257. scal_unit : png_byte;
  258. scal_pixel_width : double;
  259. scal_pixel_height : double;
  260. scal_s_width : png_charp;
  261. scal_s_height : png_charp;
  262. row_pointers : png_bytepp;
  263. int_gamma : png_fixed_point;
  264. int_x_white : png_fixed_point;
  265. int_y_white : png_fixed_point;
  266. int_x_red : png_fixed_point;
  267. int_y_red : png_fixed_point;
  268. int_x_green : png_fixed_point;
  269. int_y_green : png_fixed_point;
  270. int_x_blue : png_fixed_point;
  271. int_y_blue : png_fixed_point;
  272. end;
  273. ppng_info = ^png_info;
  274. pppng_info = ^ppng_info;
  275. png_info_struct = png_info;
  276. png_infop = Ppng_info;
  277. png_infopp = PPpng_info;
  278. png_row_info = record
  279. width : png_uint_32;
  280. rowbytes : png_uint_32;
  281. color_type : png_byte;
  282. bit_depth : png_byte;
  283. channels : png_byte;
  284. pixel_depth : png_byte;
  285. end;
  286. ppng_row_info = ^png_row_info;
  287. pppng_row_info = ^ppng_row_info;
  288. png_row_info_struct = png_row_info;
  289. png_row_infop = Ppng_row_info;
  290. png_row_infopp = PPpng_row_info;
  291. // png_struct_def = png_struct;
  292. png_structp = ^png_struct;
  293. png_error_ptr = Procedure(Arg1 : png_structp; Arg2 : png_const_charp);cdecl;
  294. png_rw_ptr = Procedure(Arg1 : png_structp; Arg2 : png_bytep; Arg3 : png_size_t);cdecl;
  295. png_flush_ptr = procedure (Arg1 : png_structp) ;cdecl;
  296. png_read_status_ptr = procedure (Arg1 : png_structp; Arg2 : png_uint_32; Arg3: int);cdecl;
  297. png_write_status_ptr = Procedure (Arg1 : png_structp; Arg2:png_uint_32;Arg3 : int) ;cdecl;
  298. png_progressive_info_ptr = Procedure (Arg1 : png_structp; Arg2 : png_infop) ;cdecl;
  299. png_progressive_end_ptr = Procedure (Arg1 : png_structp; Arg2 : png_infop) ;cdecl;
  300. png_progressive_row_ptr = Procedure (Arg1 : png_structp; Arg2 : png_bytep; Arg3 : png_uint_32; Arg4 : int) ;cdecl;
  301. png_user_transform_ptr = Procedure (Arg1 : png_structp; Arg2 : png_row_infop; Arg3 : png_bytep) ;cdecl;
  302. png_user_chunk_ptr = Function (Arg1 : png_structp; Arg2 : png_unknown_chunkp): longint;cdecl;
  303. png_unknown_chunk_ptr = Procedure (Arg1 : png_structp);cdecl;
  304. png_malloc_ptr = Function (Arg1 : png_structp; Arg2 : png_size_t) : png_voidp ;cdecl;
  305. png_free_ptr = Procedure (Arg1 : png_structp; Arg2 : png_voidp) ; cdecl;
  306. png_struct_def = record
  307. jmpbuf : jmp_buf;
  308. error_fn : png_error_ptr;
  309. warning_fn : png_error_ptr;
  310. error_ptr : png_voidp;
  311. write_data_fn : png_rw_ptr;
  312. read_data_fn : png_rw_ptr;
  313. io_ptr : png_voidp;
  314. read_user_transform_fn : png_user_transform_ptr;
  315. write_user_transform_fn : png_user_transform_ptr;
  316. user_transform_ptr : png_voidp;
  317. user_transform_depth : png_byte;
  318. user_transform_channels : png_byte;
  319. mode : png_uint_32;
  320. flags : png_uint_32;
  321. transformations : png_uint_32;
  322. zstream : z_stream;
  323. zbuf : png_bytep;
  324. zbuf_size : png_size_t;
  325. zlib_level : longint;
  326. zlib_method : longint;
  327. zlib_window_bits : longint;
  328. zlib_mem_level : longint;
  329. zlib_strategy : longint;
  330. width : png_uint_32;
  331. height : png_uint_32;
  332. num_rows : png_uint_32;
  333. usr_width : png_uint_32;
  334. rowbytes : png_uint_32;
  335. irowbytes : png_uint_32;
  336. iwidth : png_uint_32;
  337. row_number : png_uint_32;
  338. prev_row : png_bytep;
  339. row_buf : png_bytep;
  340. sub_row : png_bytep;
  341. up_row : png_bytep;
  342. avg_row : png_bytep;
  343. paeth_row : png_bytep;
  344. row_info : png_row_info;
  345. idat_size : png_uint_32;
  346. crc : png_uint_32;
  347. palette : png_colorp;
  348. num_palette : png_uint_16;
  349. num_trans : png_uint_16;
  350. chunk_name : array[0..4] of png_byte;
  351. compression : png_byte;
  352. filter : png_byte;
  353. interlaced : png_byte;
  354. pass : png_byte;
  355. do_filter : png_byte;
  356. color_type : png_byte;
  357. bit_depth : png_byte;
  358. usr_bit_depth : png_byte;
  359. pixel_depth : png_byte;
  360. channels : png_byte;
  361. usr_channels : png_byte;
  362. sig_bytes : png_byte;
  363. filler : png_uint_16;
  364. background_gamma_type : png_byte;
  365. background_gamma : double;
  366. background : png_color_16;
  367. background_1 : png_color_16;
  368. output_flush_fn : png_flush_ptr;
  369. flush_dist : png_uint_32;
  370. flush_rows : png_uint_32;
  371. gamma_shift : longint;
  372. gamma : double;
  373. screen_gamma : double;
  374. gamma_table : png_bytep;
  375. gamma_from_1 : png_bytep;
  376. gamma_to_1 : png_bytep;
  377. gamma_16_table : png_uint_16pp;
  378. gamma_16_from_1 : png_uint_16pp;
  379. gamma_16_to_1 : png_uint_16pp;
  380. sig_bit : png_color_8;
  381. shift : png_color_8;
  382. trans : png_bytep;
  383. trans_values : png_color_16;
  384. read_row_fn : png_read_status_ptr;
  385. write_row_fn : png_write_status_ptr;
  386. info_fn : png_progressive_info_ptr;
  387. row_fn : png_progressive_row_ptr;
  388. end_fn : png_progressive_end_ptr;
  389. save_buffer_ptr : png_bytep;
  390. save_buffer : png_bytep;
  391. current_buffer_ptr : png_bytep;
  392. current_buffer : png_bytep;
  393. push_length : png_uint_32;
  394. skip_length : png_uint_32;
  395. save_buffer_size : png_size_t;
  396. save_buffer_max : png_size_t;
  397. buffer_size : png_size_t;
  398. current_buffer_size : png_size_t;
  399. process_mode : longint;
  400. cur_palette : longint;
  401. current_text_size : png_size_t;
  402. current_text_left : png_size_t;
  403. current_text : png_charp;
  404. current_text_ptr : png_charp;
  405. palette_lookup : png_bytep;
  406. dither_index : png_bytep;
  407. hist : png_uint_16p;
  408. heuristic_method : png_byte;
  409. num_prev_filters : png_byte;
  410. prev_filters : png_bytep;
  411. filter_weights : png_uint_16p;
  412. inv_filter_weights : png_uint_16p;
  413. filter_costs : png_uint_16p;
  414. inv_filter_costs : png_uint_16p;
  415. time_buffer : png_charp;
  416. free_me : png_uint_32;
  417. user_chunk_ptr : png_voidp;
  418. read_user_chunk_fn : png_user_chunk_ptr;
  419. num_chunk_list : longint;
  420. chunk_list : png_bytep;
  421. rgb_to_gray_status : png_byte;
  422. rgb_to_gray_red_coeff : png_uint_16;
  423. rgb_to_gray_green_coeff : png_uint_16;
  424. rgb_to_gray_blue_coeff : png_uint_16;
  425. empty_plte_permitted : png_byte;
  426. int_gamma : png_fixed_point;
  427. end;
  428. ppng_struct_def = ^png_struct_def;
  429. pppng_struct_def = ^ppng_struct_def;
  430. png_struct = png_struct_def;
  431. ppng_struct = ^png_struct;
  432. pppng_struct = ^ppng_struct;
  433. version_1_0_8 = png_structp;
  434. png_structpp = PPpng_struct;
  435. function png_access_version_number:png_uint_32;cdecl; external LibPng;
  436. procedure png_set_sig_bytes(png_ptr:png_structp; num_bytes:longint);cdecl; external LibPng;
  437. function png_sig_cmp(sig:png_bytep; start:png_size_t; num_to_check:png_size_t):longint;cdecl; external LibPng;
  438. function png_check_sig(sig:png_bytep; num:longint):longint;cdecl; external LibPng;
  439. function png_create_read_struct(user_png_ver:png_const_charp; error_ptr:png_voidp; error_fn:png_error_ptr; warn_fn:png_error_ptr):png_structp;cdecl; external LibPng;
  440. function png_create_write_struct(user_png_ver:png_const_charp; error_ptr:png_voidp; error_fn:png_error_ptr; warn_fn:png_error_ptr):png_structp;cdecl; external LibPng;
  441. function png_get_compression_buffer_size(png_ptr:png_structp):png_uint_32;cdecl; external LibPng;
  442. procedure png_set_compression_buffer_size(png_ptr:png_structp; size:png_uint_32);cdecl; external LibPng;
  443. function png_reset_zstream(png_ptr:png_structp):longint;cdecl; external LibPng;
  444. procedure png_write_chunk(png_ptr:png_structp; chunk_name:png_bytep; data:png_bytep; length:png_size_t);cdecl; external LibPng;
  445. procedure png_write_chunk_start(png_ptr:png_structp; chunk_name:png_bytep; length:png_uint_32);cdecl; external LibPng;
  446. procedure png_write_chunk_data(png_ptr:png_structp; data:png_bytep; length:png_size_t);cdecl; external LibPng;
  447. procedure png_write_chunk_end(png_ptr:png_structp);cdecl; external LibPng;
  448. function png_create_info_struct(png_ptr:png_structp):png_infop;cdecl; external LibPng;
  449. procedure png_info_init(info_ptr:png_infop);cdecl; external LibPng;
  450. procedure png_write_info_before_PLTE(png_ptr:png_structp; info_ptr:png_infop);cdecl; external LibPng;
  451. procedure png_write_info(png_ptr:png_structp; info_ptr:png_infop);cdecl; external LibPng;
  452. procedure png_read_info(png_ptr:png_structp; info_ptr:png_infop);cdecl; external LibPng;
  453. function png_convert_to_rfc1123(png_ptr:png_structp; ptime:png_timep):png_charp;cdecl; external LibPng;
  454. procedure png_convert_from_struct_tm(ptime:png_timep; ttime:Pointer);cdecl; external LibPng;
  455. procedure png_convert_from_time_t(ptime:png_timep; ttime:time_t);cdecl; external LibPng;
  456. procedure png_set_expand(png_ptr:png_structp);cdecl; external LibPng;
  457. procedure png_set_gray_1_2_4_to_8(png_ptr:png_structp);cdecl; external LibPng;
  458. procedure png_set_palette_to_rgb(png_ptr:png_structp);cdecl; external LibPng;
  459. procedure png_set_tRNS_to_alpha(png_ptr:png_structp);cdecl; external LibPng;
  460. procedure png_set_bgr(png_ptr:png_structp);cdecl; external LibPng;
  461. procedure png_set_gray_to_rgb(png_ptr:png_structp);cdecl; external LibPng;
  462. procedure png_set_rgb_to_gray(png_ptr:png_structp; error_action:longint; red:double; green:double);cdecl; external LibPng;
  463. procedure png_set_rgb_to_gray_fixed(png_ptr:png_structp; error_action:longint; red:png_fixed_point; green:png_fixed_point);cdecl; external LibPng;
  464. function png_get_rgb_to_gray_status(png_ptr:png_structp):png_byte;cdecl; external LibPng;
  465. procedure png_build_grayscale_palette(bit_depth:longint; palette:png_colorp);cdecl; external LibPng;
  466. procedure png_set_strip_alpha(png_ptr:png_structp);cdecl; external LibPng;
  467. procedure png_set_swap_alpha(png_ptr:png_structp);cdecl; external LibPng;
  468. procedure png_set_invert_alpha(png_ptr:png_structp);cdecl; external LibPng;
  469. procedure png_set_filler(png_ptr:png_structp; filler:png_uint_32; flags:longint);cdecl; external LibPng;
  470. procedure png_set_swap(png_ptr:png_structp);cdecl; external LibPng;
  471. procedure png_set_packing(png_ptr:png_structp);cdecl; external LibPng;
  472. procedure png_set_packswap(png_ptr:png_structp);cdecl; external LibPng;
  473. procedure png_set_shift(png_ptr:png_structp; true_bits:png_color_8p);cdecl; external LibPng;
  474. function png_set_interlace_handling(png_ptr:png_structp):longint;cdecl; external LibPng;
  475. procedure png_set_invert_mono(png_ptr:png_structp);cdecl; external LibPng;
  476. procedure png_set_background(png_ptr:png_structp; background_color:png_color_16p; background_gamma_code:longint; need_expand:longint; background_gamma:double);cdecl; external LibPng;
  477. procedure png_set_strip_16(png_ptr:png_structp);cdecl; external LibPng;
  478. procedure png_set_dither(png_ptr:png_structp; palette:png_colorp; num_palette:longint; maximum_colors:longint; histogram:png_uint_16p;
  479. full_dither:longint);cdecl; external LibPng;
  480. procedure png_set_gamma(png_ptr:png_structp; screen_gamma:double; default_file_gamma:double);cdecl; external LibPng;
  481. procedure png_permit_empty_plte(png_ptr:png_structp; empty_plte_permitted:longint);cdecl; external LibPng;
  482. procedure png_set_flush(png_ptr:png_structp; nrows:longint);cdecl; external LibPng;
  483. procedure png_write_flush(png_ptr:png_structp);cdecl; external LibPng;
  484. procedure png_start_read_image(png_ptr:png_structp);cdecl; external LibPng;
  485. procedure png_read_update_info(png_ptr:png_structp; info_ptr:png_infop);cdecl; external LibPng;
  486. procedure png_read_rows(png_ptr:png_structp; row:png_bytepp; display_row:png_bytepp; num_rows:png_uint_32);cdecl; external LibPng;
  487. procedure png_read_row(png_ptr:png_structp; row:png_bytep; display_row:png_bytep);cdecl; external LibPng;
  488. procedure png_read_image(png_ptr:png_structp; image:png_bytepp);cdecl; external LibPng;
  489. procedure png_write_row(png_ptr:png_structp; row:png_bytep);cdecl; external LibPng;
  490. procedure png_write_rows(png_ptr:png_structp; row:png_bytepp; num_rows:png_uint_32);cdecl; external LibPng;
  491. procedure png_write_image(png_ptr:png_structp; image:png_bytepp);cdecl; external LibPng;
  492. procedure png_write_end(png_ptr:png_structp; info_ptr:png_infop);cdecl; external LibPng;
  493. procedure png_read_end(png_ptr:png_structp; info_ptr:png_infop);cdecl; external LibPng;
  494. procedure png_destroy_info_struct(png_ptr:png_structp; info_ptr_ptr:png_infopp);cdecl; external LibPng;
  495. procedure png_destroy_read_struct(png_ptr_ptr:png_structpp; info_ptr_ptr:png_infopp; end_info_ptr_ptr:png_infopp);cdecl; external LibPng;
  496. procedure png_read_destroy(png_ptr:png_structp; info_ptr:png_infop; end_info_ptr:png_infop);cdecl; external LibPng;
  497. procedure png_destroy_write_struct(png_ptr_ptr:png_structpp; info_ptr_ptr:png_infopp);cdecl; external LibPng;
  498. procedure png_write_destroy_info(info_ptr:png_infop);cdecl; external LibPng;
  499. procedure png_write_destroy(png_ptr:png_structp);cdecl; external LibPng;
  500. procedure png_set_crc_action(png_ptr:png_structp; crit_action:longint; ancil_action:longint);cdecl; external LibPng;
  501. procedure png_set_filter(png_ptr:png_structp; method:longint; filters:longint);cdecl; external LibPng;
  502. procedure png_set_filter_heuristics(png_ptr:png_structp; heuristic_method:longint; num_weights:longint; filter_weights:png_doublep; filter_costs:png_doublep);cdecl; external LibPng;
  503. procedure png_set_compression_level(png_ptr:png_structp; level:longint);cdecl; external LibPng;
  504. procedure png_set_compression_mem_level(png_ptr:png_structp; mem_level:longint);cdecl; external LibPng;
  505. procedure png_set_compression_strategy(png_ptr:png_structp; strategy:longint);cdecl; external LibPng;
  506. procedure png_set_compression_window_bits(png_ptr:png_structp; window_bits:longint);cdecl; external LibPng;
  507. procedure png_set_compression_method(png_ptr:png_structp; method:longint);cdecl; external LibPng;
  508. procedure png_init_io(png_ptr:png_structp; fp:png_FILE_p);cdecl; external LibPng;
  509. procedure png_set_error_fn(png_ptr:png_structp; error_ptr:png_voidp; error_fn:png_error_ptr; warning_fn:png_error_ptr);cdecl; external LibPng;
  510. function png_get_error_ptr(png_ptr:png_structp):png_voidp;cdecl; external LibPng;
  511. procedure png_set_write_fn(png_ptr:png_structp; io_ptr:png_voidp; write_data_fn:png_rw_ptr; output_flush_fn:png_flush_ptr);cdecl; external LibPng;
  512. procedure png_set_read_fn(png_ptr:png_structp; io_ptr:png_voidp; read_data_fn:png_rw_ptr);cdecl; external LibPng;
  513. function png_get_io_ptr(png_ptr:png_structp):png_voidp;cdecl; external LibPng;
  514. procedure png_set_read_status_fn(png_ptr:png_structp; read_row_fn:png_read_status_ptr);cdecl; external LibPng;
  515. procedure png_set_write_status_fn(png_ptr:png_structp; write_row_fn:png_write_status_ptr);cdecl; external LibPng;
  516. procedure png_set_read_user_transform_fn(png_ptr:png_structp; read_user_transform_fn:png_user_transform_ptr);cdecl; external LibPng;
  517. procedure png_set_write_user_transform_fn(png_ptr:png_structp; write_user_transform_fn:png_user_transform_ptr);cdecl; external LibPng;
  518. procedure png_set_user_transform_info(png_ptr:png_structp; user_transform_ptr:png_voidp; user_transform_depth:longint; user_transform_channels:longint);cdecl; external LibPng;
  519. function png_get_user_transform_ptr(png_ptr:png_structp):png_voidp;cdecl; external LibPng;
  520. procedure png_set_read_user_chunk_fn(png_ptr:png_structp; user_chunk_ptr:png_voidp; read_user_chunk_fn:png_user_chunk_ptr);cdecl; external LibPng;
  521. function png_get_user_chunk_ptr(png_ptr:png_structp):png_voidp;cdecl; external LibPng;
  522. procedure png_set_progressive_read_fn(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; external LibPng;
  523. function png_get_progressive_ptr(png_ptr:png_structp):png_voidp;cdecl; external LibPng;
  524. procedure png_process_data(png_ptr:png_structp; info_ptr:png_infop; buffer:png_bytep; buffer_size:png_size_t);cdecl; external LibPng;
  525. procedure png_progressive_combine_row(png_ptr:png_structp; old_row:png_bytep; new_row:png_bytep);cdecl; external LibPng;
  526. function png_malloc(png_ptr:png_structp; size:png_uint_32):png_voidp;cdecl; external LibPng;
  527. procedure png_free(png_ptr:png_structp; ptr:png_voidp);cdecl; external LibPng;
  528. procedure png_free_data(png_ptr:png_structp; info_ptr:png_infop; free_me:png_uint_32; num:longint);cdecl; external LibPng;
  529. procedure png_data_freer(png_ptr:png_structp; info_ptr:png_infop; freer:longint; mask:png_uint_32);cdecl; external LibPng;
  530. function png_memcpy_check(png_ptr:png_structp; s1:png_voidp; s2:png_voidp; size:png_uint_32):png_voidp;cdecl; external LibPng;
  531. function png_memset_check(png_ptr:png_structp; s1:png_voidp; value:longint; size:png_uint_32):png_voidp;cdecl; external LibPng;
  532. procedure png_error(png_ptr:png_structp; error:png_const_charp);cdecl; external LibPng;
  533. procedure png_chunk_error(png_ptr:png_structp; error:png_const_charp);cdecl; external LibPng;
  534. procedure png_warning(png_ptr:png_structp; message:png_const_charp);cdecl; external LibPng;
  535. procedure png_chunk_warning(png_ptr:png_structp; message:png_const_charp);cdecl; external LibPng;
  536. function png_get_valid(png_ptr:png_structp; info_ptr:png_infop; flag:png_uint_32):png_uint_32;cdecl; external LibPng;
  537. function png_get_rowbytes(png_ptr:png_structp; info_ptr:png_infop):png_uint_32;cdecl; external LibPng;
  538. function png_get_rows(png_ptr:png_structp; info_ptr:png_infop):png_bytepp;cdecl; external LibPng;
  539. procedure png_set_rows(png_ptr:png_structp; info_ptr:png_infop; row_pointers:png_bytepp);cdecl; external LibPng;
  540. function png_get_channels(png_ptr:png_structp; info_ptr:png_infop):png_byte;cdecl; external LibPng;
  541. function png_get_image_width(png_ptr:png_structp; info_ptr:png_infop):png_uint_32;cdecl; external LibPng;
  542. function png_get_image_height(png_ptr:png_structp; info_ptr:png_infop):png_uint_32;cdecl; external LibPng;
  543. function png_get_bit_depth(png_ptr:png_structp; info_ptr:png_infop):png_byte;cdecl; external LibPng;
  544. function png_get_color_type(png_ptr:png_structp; info_ptr:png_infop):png_byte;cdecl; external LibPng;
  545. function png_get_filter_type(png_ptr:png_structp; info_ptr:png_infop):png_byte;cdecl; external LibPng;
  546. function png_get_interlace_type(png_ptr:png_structp; info_ptr:png_infop):png_byte;cdecl; external LibPng;
  547. function png_get_compression_type(png_ptr:png_structp; info_ptr:png_infop):png_byte;cdecl; external LibPng;
  548. function png_get_pixels_per_meter(png_ptr:png_structp; info_ptr:png_infop):png_uint_32;cdecl; external LibPng;
  549. function png_get_x_pixels_per_meter(png_ptr:png_structp; info_ptr:png_infop):png_uint_32;cdecl; external LibPng;
  550. function png_get_y_pixels_per_meter(png_ptr:png_structp; info_ptr:png_infop):png_uint_32;cdecl; external LibPng;
  551. function png_get_pixel_aspect_ratio(png_ptr:png_structp; info_ptr:png_infop):double;cdecl; external LibPng;
  552. function png_get_x_offset_pixels(png_ptr:png_structp; info_ptr:png_infop):png_int_32;cdecl; external LibPng;
  553. function png_get_y_offset_pixels(png_ptr:png_structp; info_ptr:png_infop):png_int_32;cdecl; external LibPng;
  554. function png_get_x_offset_microns(png_ptr:png_structp; info_ptr:png_infop):png_int_32;cdecl; external LibPng;
  555. function png_get_y_offset_microns(png_ptr:png_structp; info_ptr:png_infop):png_int_32;cdecl; external LibPng;
  556. function png_get_signature(png_ptr:png_structp; info_ptr:png_infop):png_bytep;cdecl; external LibPng;
  557. function png_get_bKGD(png_ptr:png_structp; info_ptr:png_infop; background:Ppng_color_16p):png_uint_32;cdecl; external LibPng;
  558. procedure png_set_bKGD(png_ptr:png_structp; info_ptr:png_infop; background:png_color_16p);cdecl; external LibPng;
  559. function png_get_cHRM(png_ptr:png_structp; info_ptr:png_infop; white_x:Pdouble; white_y:Pdouble; red_x:Pdouble;
  560. red_y:Pdouble; green_x:Pdouble; green_y:Pdouble; blue_x:Pdouble; blue_y:Pdouble):png_uint_32;cdecl; external LibPng;
  561. function png_get_cHRM_fixed(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;
  562. 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; external LibPng;
  563. procedure png_set_cHRM(png_ptr:png_structp; info_ptr:png_infop; white_x:double; white_y:double; red_x:double;
  564. red_y:double; green_x:double; green_y:double; blue_x:double; blue_y:double);cdecl; external LibPng;
  565. procedure png_set_cHRM_fixed(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;
  566. 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; external LibPng;
  567. function png_get_gAMA(png_ptr:png_structp; info_ptr:png_infop; file_gamma:Pdouble):png_uint_32;cdecl; external LibPng;
  568. function png_get_gAMA_fixed(png_ptr:png_structp; info_ptr:png_infop; int_file_gamma:Ppng_fixed_point):png_uint_32;cdecl; external LibPng;
  569. procedure png_set_gAMA(png_ptr:png_structp; info_ptr:png_infop; file_gamma:double);cdecl; external LibPng;
  570. procedure png_set_gAMA_fixed(png_ptr:png_structp; info_ptr:png_infop; int_file_gamma:png_fixed_point);cdecl; external LibPng;
  571. function png_get_hIST(png_ptr:png_structp; info_ptr:png_infop; hist:Ppng_uint_16p):png_uint_32;cdecl; external LibPng;
  572. procedure png_set_hIST(png_ptr:png_structp; info_ptr:png_infop; hist:png_uint_16p);cdecl; external LibPng;
  573. function png_get_IHDR(png_ptr:png_structp; info_ptr:png_infop; width:Ppng_uint_32; height:Ppng_uint_32; bit_depth:Plongint;
  574. color_type:Plongint; interlace_type:Plongint; compression_type:Plongint; filter_type:Plongint):png_uint_32;cdecl; external LibPng;
  575. procedure png_set_IHDR(png_ptr:png_structp; info_ptr:png_infop; width:png_uint_32; height:png_uint_32; bit_depth:longint;
  576. color_type:longint; interlace_type:longint; compression_type:longint; filter_type:longint);cdecl; external LibPng;
  577. function png_get_oFFs(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; external LibPng;
  578. procedure png_set_oFFs(png_ptr:png_structp; info_ptr:png_infop; offset_x:png_int_32; offset_y:png_int_32; unit_type:longint);cdecl; external LibPng;
  579. function png_get_pCAL(png_ptr:png_structp; info_ptr:png_infop; purpose:Ppng_charp; X0:Ppng_int_32; X1:Ppng_int_32;
  580. atype:Plongint; nparams:Plongint; units:Ppng_charp; params:Ppng_charpp):png_uint_32;cdecl; external LibPng;
  581. procedure png_set_pCAL(png_ptr:png_structp; info_ptr:png_infop; purpose:png_charp; X0:png_int_32; X1:png_int_32;
  582. atype:longint; nparams:longint; units:png_charp; params:png_charpp);cdecl; external LibPng;
  583. function png_get_pHYs(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; external LibPng;
  584. procedure png_set_pHYs(png_ptr:png_structp; info_ptr:png_infop; res_x:png_uint_32; res_y:png_uint_32; unit_type:longint);cdecl; external LibPng;
  585. function png_get_PLTE(png_ptr:png_structp; info_ptr:png_infop; palette:Ppng_colorp; num_palette:Plongint):png_uint_32;cdecl; external LibPng;
  586. procedure png_set_PLTE(png_ptr:png_structp; info_ptr:png_infop; palette:png_colorp; num_palette:longint);cdecl; external LibPng;
  587. function png_get_sBIT(png_ptr:png_structp; info_ptr:png_infop; sig_bit:Ppng_color_8p):png_uint_32;cdecl; external LibPng;
  588. procedure png_set_sBIT(png_ptr:png_structp; info_ptr:png_infop; sig_bit:png_color_8p);cdecl; external LibPng;
  589. function png_get_sRGB(png_ptr:png_structp; info_ptr:png_infop; intent:Plongint):png_uint_32;cdecl; external LibPng;
  590. procedure png_set_sRGB(png_ptr:png_structp; info_ptr:png_infop; intent:longint);cdecl; external LibPng;
  591. procedure png_set_sRGB_gAMA_and_cHRM(png_ptr:png_structp; info_ptr:png_infop; intent:longint);cdecl; external LibPng;
  592. function png_get_iCCP(png_ptr:png_structp; info_ptr:png_infop; name:png_charpp; compression_type:Plongint; profile:png_charpp;
  593. proflen:Ppng_uint_32):png_uint_32;cdecl; external LibPng;
  594. procedure png_set_iCCP(png_ptr:png_structp; info_ptr:png_infop; name:png_charp; compression_type:longint; profile:png_charp;
  595. proflen:png_uint_32);cdecl; external LibPng;
  596. function png_get_sPLT(png_ptr:png_structp; info_ptr:png_infop; entries:png_sPLT_tpp):png_uint_32;cdecl; external LibPng;
  597. procedure png_set_sPLT(png_ptr:png_structp; info_ptr:png_infop; entries:png_sPLT_tp; nentries:longint);cdecl; external LibPng;
  598. function png_get_text(png_ptr:png_structp; info_ptr:png_infop; text_ptr:Ppng_textp; num_text:Plongint):png_uint_32;cdecl; external LibPng;
  599. procedure png_set_text(png_ptr:png_structp; info_ptr:png_infop; text_ptr:png_textp; num_text:longint);cdecl; external LibPng;
  600. function png_get_tIME(png_ptr:png_structp; info_ptr:png_infop; mod_time:Ppng_timep):png_uint_32;cdecl; external LibPng;
  601. procedure png_set_tIME(png_ptr:png_structp; info_ptr:png_infop; mod_time:png_timep);cdecl; external LibPng;
  602. function png_get_tRNS(png_ptr:png_structp; info_ptr:png_infop; trans:Ppng_bytep; num_trans:Plongint; trans_values:Ppng_color_16p):png_uint_32;cdecl; external LibPng;
  603. procedure png_set_tRNS(png_ptr:png_structp; info_ptr:png_infop; trans:png_bytep; num_trans:longint; trans_values:png_color_16p);cdecl; external LibPng;
  604. function png_get_sCAL(png_ptr:png_structp; info_ptr:png_infop; aunit:Plongint; width:Pdouble; height:Pdouble):png_uint_32;cdecl; external LibPng;
  605. procedure png_set_sCAL(png_ptr:png_structp; info_ptr:png_infop; aunit:longint; width:double; height:double);cdecl; external LibPng;
  606. procedure png_set_sCAL_s(png_ptr:png_structp; info_ptr:png_infop; aunit:longint; swidth:png_charp; sheight:png_charp);cdecl; external LibPng;
  607. procedure png_set_keep_unknown_chunks(png_ptr:png_structp; keep:longint; chunk_list:png_bytep; num_chunks:longint);cdecl; external LibPng;
  608. procedure png_set_unknown_chunks(png_ptr:png_structp; info_ptr:png_infop; unknowns:png_unknown_chunkp; num_unknowns:longint);cdecl; external LibPng;
  609. procedure png_set_unknown_chunk_location(png_ptr:png_structp; info_ptr:png_infop; chunk:longint; location:longint);cdecl; external LibPng;
  610. function png_get_unknown_chunks(png_ptr:png_structp; info_ptr:png_infop; entries:png_unknown_chunkpp):png_uint_32;cdecl; external LibPng;
  611. procedure png_set_invalid(png_ptr:png_structp; info_ptr:png_infop; mask:longint);cdecl; external LibPng;
  612. procedure png_read_png(png_ptr:png_structp; info_ptr:png_infop; transforms:longint; params:voidp);cdecl; external LibPng;
  613. procedure png_write_png(png_ptr:png_structp; info_ptr:png_infop; transforms:longint; params:voidp);cdecl; external LibPng;
  614. function png_get_header_ver(png_ptr:png_structp):png_charp;cdecl; external LibPng;
  615. function png_get_header_version(png_ptr:png_structp):png_charp;cdecl; external LibPng;
  616. function png_get_libpng_ver(png_ptr:png_structp):png_charp;cdecl; external LibPng;
  617. implementation
  618. end.