Attribute VB_Name = "modPNG" Option Explicit '============================================================================================================= ' ' modPNG Module ' ------------- ' ' Created By : Kevin Wilson ' http://www.TheVBZone.com ( The VB Zone ) ' http://www.TheVBZone.net ( The VB Zone .net ) ' ' Last Update : March 17, 2002 ' ' VB Versions : 5.0 / 6.0 ' ' Requires : LIBPNG_VB.DLL [v1.0.12 or better] (LIBPNG İ 1998-2001 Glenn Randers-Pehrson) ' ZLIB.DLL [v1.1.3 or better] (ZLIB İ 1995-1998 Jean-loup Gailly & Mark Adler) ' ' NOTE : The PNG library is currently maintained by Glenn Randers-Pehrson (glennrp@comcast.net) ' The PNG web site is currently maintained by Greg Roelofs (newt@pobox.com) ' ' Description : This module wraps the exported functions and functionality of the LIBPNG.DLL library ' making usable to Visual Basic 5/6 programmers. ' ' You'll notice that under the "Requires" section of this module header, it says that ' "LIBPNG_VB.DLL" is required... that is because the regular version "LIBPNG.DLL" that is ' currently distrubuted is compiled with a C/C++ calling convention called "__cdecl". This ' is not compatible with Visual Basic. This special version of LIBPNG is the exact same ' library, but compiled with the standard calling convention "__stdcall"... which IS ' compatible with Visual Basic. ' ' A special thanks to John Bell who took the time to change the calling convention of this ' library and recompile it in C++ so that us VB guys could use this great DLL. He has posted ' these VB-Compatible DLL's on his web site - http://www3.telus.net/johnbell/ ' ' NOTE : All functions that call for a "png_info" or "png_struct" structure (type) as the variable type ' have been replaced with the variable type "Any" so you can pass a pointer variable as ' "ByVal MyPointer" or a real structure variable as "MyPngInfo" / "MyPngStruct". All functions ' that return a "png_info" or "png_struct" variable type have been commented out and replaced ' with "Long" variable types... but you can change that if you would like them to return the ' real structures instead of pointers to them (though I wouldn't recommend doing that since ' the LIBPNG library is setup to pass pointers around instead of structures/types). ' ' IMPORTANT : It is important to remember that when C/C++ functions (like the ones declared in this module) ' are looking for pointer to an array (ie - byte array, or integer array, etc.), you should pass ' the first element of that array "ByRef". Arrays are contiguous in memory, so if you pass a ' "reference" (pointer) to the first element, you are pointing to that array. ' ' If the C-style function looks like this: ' void png_BLAH (png_bytep buffer, png_size_t buffer_size); ' The VB declaration for that exported function would look like this: ' Public Declare Sub png_BLAH Lib "LIBPNG_VB.DLL" (ByRef buffer As Byte, ByVal buffer_size As Long) ' And you would call the VB declared function like this: ' Call png_BLAH(bytBuffer(0), lngBufferSize) ' ' See Also : http://www.libpng.org/pub/png/ ' http://www.libpng.org/pub/png/libpng.html ' http://www.libpng.org/pub/png/book/ ' http://www.gzip.org/zlib/ ' http://www.w3.org/TR/REC.png.html ' ftp://ftp.uu.net/graphics/png/ ' ftp://ftp.uu.net/graphics/png/documents/ ' '============================================================================================================= ' ' LEGAL: ' ' You are free to use this code as long as you keep the above heading information intact and unchanged. Credit ' given where credit is due. Also, it is not required, but it would be appreciated if you would mention ' somewhere in your compiled program that that your program makes use of code written and distributed by ' Kevin Wilson (www.TheVBZone.com). Feel free to link to this code via your web site or articles. ' ' You may NOT take this code and pass it off as your own. You may NOT distribute this code on your own server ' or web site. You may NOT take code created by Kevin Wilson (www.TheVBZone.com) and use it to create products, ' utilities, or applications that directly compete with products, utilities, and applications created by Kevin ' Wilson, TheVBZone.com, or Wilson Media. You may NOT take this code and sell it for profit without first ' obtaining the written consent of the author Kevin Wilson. ' ' These conditions are subject to change at the discretion of the owner Kevin Wilson at any time without ' warning or notice. Copyrightİ by Kevin Wilson. All rights reserved. ' '============================================================================================================= '_____________________________________________________________________________________________________________ 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ ' ' ~ PNG COPYRIGHT NOTICE, DISCLAIMER, & LICENSE ~ '------------------------------------------------------------------------------------------------------------- ' ' If you modify libpng you may insert additional notices immediately following this sentence. ' ' libpng versions 1.0.7, July 1, 2000, through 1.0.12, June 8, 2001, are Copyright (c) 2000, 2001 Glenn ' Randers-Pehrson, and are distributed according to the same disclaimer and license as libpng-1.0.6 with ' the following individuals added to the list of Contributing Authors ' ' Simon-Pierre Cadieux ' Eric S. Raymond ' Gilles Vollant ' ' and with the following additions to the disclaimer: ' ' There is no warranty against interference with your enjoyment of the library or against infringement. ' There is no warranty that our efforts or the library will fulfill any of your particular purposes or ' needs. This library is provided with all faults, and the entire risk of satisfactory quality, ' performance, accuracy, and effort is with the user. ' ' libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are Copyright (c) 1998, 1999, 2000 ' Glenn Randers-Pehrson. Distributed according to the same disclaimer and license as libpng-0.96, with ' the following individuals added to the list of Contributing Authors: ' ' Tom Lane ' Glenn Randers-Pehrson ' Willem van Schaik ' ' libpng versions 0.89, June 1996, through 0.96, May 1997, are Copyright (c) 1996, 1997 Andreas Dilger. ' Distributed according to the same disclaimer and license as libpng-0.88, with the following individuals ' added to the list of Contributing Authors: ' ' John Bowler ' Kevin Bracey ' Sam Bushell ' Magnus Holmgren ' Greg Roelofs ' Tom Tanner ' ' libpng versions 0.5, May 1995, through 0.88, January 1996, are Copyright (c) 1995, 1996 Guy Eric Schalnat, ' Group 42, Inc. ' ' For the purposes of this copyright and license, "Contributing Authors" is defined as the following set of ' individuals: ' ' Andreas Dilger ' Dave Martindale ' Guy Eric Schalnat ' Paul Schmidt ' Tim Wegner ' ' The PNG Reference Library is supplied "AS IS". The Contributing Authors and Group 42, Inc. disclaim all ' warranties, expressed or implied, including, without limitation, the warranties of merchantability and of ' fitness for any purpose. The Contributing Authors and Group 42, Inc. assume no liability for direct, ' indirect, incidental, special, exemplary, or consequential damages, which may result from the use of the ' PNG Reference Library, even if advised of the possibility of such damage. ' ' Permission is hereby granted to use, copy, modify, and distribute this source code, or portions hereof, for ' any purpose, without fee, subject to the following restrictions: ' ' 1. The origin of this source code must not be misrepresented. ' ' 2. Altered versions must be plainly marked as such and must not be misrepresented as being the original source. ' ' 3. This Copyright notice may not be removed or altered from any source or altered source distribution. ' ' The Contributing Authors and Group 42, Inc. specifically permit, without fee, and encourage the use of this ' source code as a component to supporting the PNG file format in commercial products. If you use this source ' code in a product, acknowledgment is not required but would be appreciated. ' '_____________________________________________________________________________________________________________ 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ '============================================================================================================= ' Base Variable Data Type Definitions '------------------------------------------------------------------ 'typedef unsigned long png_uint_32; // = Long (4 bytes) 'typedef long png_int_32; // = Long (4 bytes) 'typedef unsigned short png_uint_16; // = Integer (2 bytes) 'typedef short png_int_16; // = Integer (2 bytes) 'typedef unsigned char png_byte; // = Byte (1 byte ) 'typedef long time_t; // = Long (4 bytes) 'typedef float // = Single (4 bytes) 'typedef double // = Double (8 bytes) 'typedef double png_double; // = Double (8 bytes) 'typedef HANDLE png_FILE_p; // = Long (4 bytes) Pointer to a file HANDLE 'typedef FILE png_FILE_p; // = Long (4 bytes) Pointer to a file HANDLE ' ' ' Jump Buffer Data Type Definitions (used by "setjmp" and "longjmp" [SETJMP.H] '------------------------------------------------------------------ '#define _JBLEN 16 '#define _JBTYPE int 'typedef _JBTYPE jmp_buf[_JBLEN]; // = Long(15) ' ' ' Structure (Type) Variable Definitions '------------------------------------------------------------------ 'typedef struct png_struct_def png_struct; // = Long (if you are just getting/passing a pointer to the structure) ' = ????? (Depends on the structure being referenced) 'typedef png_struct FAR * png_structp; // = Long (if you are just getting/passing a pointer to the structure) ' = png_struct (if you are pointing to an actual structure (which is NOT recommended by me, nor the documentation) ' ' ' SIZE_T Type Definition '----------------------------------------------------------------- 'typedef unsigned int size_t; // = Long (4 bytees) 'typedef size_t png_size_t; // = Long (4 bytees) ' ' ' Floating-Point Variable Type Definitions '------------------------------------------------------------------ 'typedef png_int_32 png_fixed_point; // = Long (4 bytes) ' ' ' Pointer Variable Type Definitions ' * NOTE: In Visual Basic you can substitute a "Long" for any of these values because pointers are ' represented by a 4 byte value... which represents a memory address of where the actual ' data resides in RAM. You have to be careful, however, how you treat the "Long" value ' if you do use it... you have to pass it "ByVal" to functions because it's value is the ' memory location. '------------------------------------------------------------------ 'typedef void FAR * png_voidp; // = Long Pointer to ANYTHING 'typedef png_byte FAR * png_bytep; // = Byte() Pointer to a BYTE ARRAY 'typedef png_uint_32 FAR * png_uint_32p; // = Long() Pointer to an ARRAY of 32-bit unsigned values 'typedef png_int_32 FAR * png_int_32p; // = Long() Pointer to an ARRAY of 32-bit values 'typedef png_uint_16 FAR * png_uint_16p; // = Integer() Pointer to an ARRAY of 16-bit unsigned values 'typedef png_int_16 FAR * png_int_16p; // = Integer() Pointer to an ARRAY of 16-bit values 'typedef png_fixed_point FAR * png_fixed_point_p; // = Long() Pointer to an ARRAY of 32-bit pointer values 'typedef png_double FAR * png_doublep; // = Double() Pointer to an ARRAY of double values 'typedef PNG_CONST char FAR * png_const_charp; // = String Pointer to a non-changing string value 'typedef char FAR * png_charp; // = String Pointer to a changing string value ' ' ' Pointers to pointers (i.e. - arrays) ' * NOTE: In Visual Basic you can substitute a "Long" for any of these values because pointers are ' represented by a 4 byte value... which represents a memory address of where the actual ' data resides in RAM. You have to be careful, however, how you treat the "Long" value ' if you do use it... you have to pass it "ByVal" to functions because it's value is the ' memory location. '------------------------------------------------------------------ 'typedef png_byte FAR * FAR * png_bytepp; // Byte(,) Pointer to an ARRAY of BYTE ARRAYS (multi-dimentional array of byte values) 'typedef png_uint_32 FAR * FAR * png_uint_32pp; // Long(,) Pointer to an ARRAY of UINT ARRAYS (multi-dimentional array of unsigned 32-bit values) 'typedef png_int_32 FAR * FAR * png_int_32pp; // Long(,) Pointer to an ARRAY of INT ARRAYS (multi-dimentional array of 32-bit values) 'typedef png_uint_16 FAR * FAR * png_uint_16pp; // Integer(,) Pointer to an ARRAY of USHORT ARRAYS (multi-dimentional array of unsigned 16-bit values) 'typedef png_int_16 FAR * FAR * png_int_16pp; // Integer(,) Pointer to an ARRAY of SHORT ARRAYS (multi-dimentional array of 16-bit values) 'typedef png_fixed_point FAR * FAR * png_fixed_point_pp; // Long(,) Pointer to an ARRAY of LONG ARRAYS (multi-dimentional array of pointers) 'typedef double FAR * FAR * png_doublepp; // Double(,) Pointer to an ARRAY of DOUBLE ARRAYS (multi-dimentional array of double values) 'typedef PNG_CONST char FAR * FAR * png_const_charpp; // String() Pointer to an ARRAY of non-changing string values 'typedef char FAR * FAR * png_charpp; // String() Pointer to an ARRAY of string values ' ' ' Pointers to pointers to pointers (i.e. - pointer to array) ' * NOTE: In Visual Basic you can substitute a "Long" for any of these values because pointers are ' represented by a 4 byte value... which represents a memory address of where the actual ' data resides in RAM. You have to be careful, however, how you treat the "Long" value ' if you do use it... you have to pass it "ByVal" to functions because it's value is the ' memory location. '------------------------------------------------------------------ 'typedef char FAR * FAR * FAR * png_charppp; // = String(,) Pointer to an ARRAY of STRING ARRAYS ((multi-dimentional array of string values) ' ' ' libpng typedefs for types in zlib '------------------------------------------------------------------ 'typedef char FAR charf; // = Byte (1 byte) 'typedef charf * png_zcharp; // = Byte (1 byte) 'typedef charf * FAR * png_zcharpp; // = Byte (1 byte) 'typedef z_stream FAR * png_zstreamp; // = STRUCTURE (Any) ' '============================================================================================================= 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ' TYPE DEFINITIONS 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Public Type tm tm_sec As Long '// int tm_sec; /* seconds after the minute - [0,59] tm_min As Long '// int tm_min; /* minutes after the hour - [0,59] tm_hour As Long '// int tm_hour; /* hours since midnight - [0,23] tm_mday As Long '// int tm_mday; /* day of the month - [1,31] tm_mon As Long '// int tm_mon; /* months since January - [0,11] tm_year As Long '// int tm_year; /* years since 1900 tm_wday As Long '// int tm_wday; /* days since Sunday - [0,6] tm_yday As Long '// int tm_yday; /* days since January 1 - [0,365] tm_isdst As Long '// int tm_isdst; /* daylight savings time flag End Type Public Type z_stream ' Taken from ZLIB.H next_in As Byte '// Bytef *next_in; /* next input byte avail_in As Long '// uInt avail_in; /* number of bytes available at next_in total_in As Long '// uLong total_in; /* total nb of input bytes read so far next_out As Byte '// Bytef *next_out; /* next output byte should be put there avail_out As Long '// uInt avail_out; /* remaining free space at next_out total_out As Long '// uLong total_out; /* total nb of bytes output so far MSG As String '// char *msg; /* last error message, NULL if no error State As Long '// struct internal_state FAR *state; /* not visible by applications zalloc As Long '// alloc_func zalloc; /* used to allocate the internal state zfree As Long '// free_func zfree; /* used to free the internal state opaque As Long '// voidpf opaque; /* private data object passed to zalloc and zfree data_type As Long '// int data_type; /* best guess about the data type: ascii or binary adler As Long '// uLong adler; /* adler32 value of the uncompressed data Reserved As Long '// uLong reserved; /* reserved for future use End Type ' Three color definitions. The order of the red, green, and blue, (and the exact size) is not important, ' although the size of the fields need to be png_byte or png_uint_16 (as defined below). Public Type png_color red As Byte '// png_byte red green As Byte '// png_byte green blue As Byte '// png_byte blue End Type Public Type png_color_16 Index As Byte '// png_byte index; /* used for palette files red As Integer '// png_uint_16 red; /* for use in red green blue files green As Integer '// png_uint_16 green; /* for use in red green blue files blue As Integer '// png_uint_16 blue; /* for use in red green blue files gray As Integer '// png_uint_16 gray; /* for use in grayscale files End Type Public Type png_color_8 red As Byte '// png_byte red; /* for use in red green blue files green As Byte '// png_byte green; /* for use in red green blue files blue As Byte '// png_byte blue; /* for use in red green blue files gray As Byte '// png_byte gray; /* for use in grayscale files alpha As Byte '// png_byte alpha; /* for alpha channel files End Type ' The following two structures are used for the in-core representation of sPLT chunks. Public Type png_sPLT_entry red As Integer '// png_uint_16 red; green As Integer '// png_uint_16 green; blue As Integer '// png_uint_16 blue; alpha As Integer '// png_uint_16 alpha; Frequency As Integer '// png_uint_16 frequency; End Type ' When the depth of the sPLT palette is 8 bits, the color and alpha samples occupy the LSB of their respective ' members, and the MSB of each member is zero-filled. The frequency member always occupies the full 16 bits. Public Type png_sPLT_t Name As String '// png_charp name; /* palette name depth As Byte '// png_byte depth; /* depth of palette samples entries() As png_sPLT_entry '// png_sPLT_entryp entries; /* palette entries nentries As Long '// png_int_32 nentries; /* number of palette entries End Type ' png_text holds the contents of a text/ztxt/itxt chunk in a PNG file, and whether that contents is compressed ' or not. The "key" field points to a regular zero-terminated C string. The "text", "lang", and "lang_key" ' fields can be regular C strings, empty strings, or NULL pointers. However, the * structure returned by ' png_get_text() will always contain regular zero-terminated C strings (possibly empty), never NULL pointers, ' so they can be safely used in printf() and other string-handling functions. Public Type png_text compression As Long '// int compression; /* compression value: ' -1: tEXt, none ' 0: zTXt , deflate ' 1: iTXt , none ' 2: iTXt, deflate Key As String '// png_charp key; /* keyword, 1-79 character description of "text" Text As String '// png_charp text; /* comment, may be an empty string (ie "") or a NULL pointer text_length As Long '// png_size_t text_length; /* length of the text string itxt_length As Long '// png_size_t itxt_length; /* length of the itxt string lang As String '// png_charp lang; /* language code, 0-79 characters or a NULL pointer lang_key As String '// png_charp lang_key; /* keyword translated UTF-8 string, 0 or more chars or a NULL pointer End Type ' png_time is a way to hold the time in an machine independent way. Two conversions are provided, both from ' time_t and struct tm. There is no portable way to convert to either of these structures, as far as I know. ' If you know of a portable way, send it to me. As a side note - PNG has always been Year 2000 compliant! Public Type png_time year As Integer '// png_uint_16 year; /* full year, as in, 1995 month As Byte '// png_byte month; /* month of year, 1 - 12 day As Byte '// png_byte day; /* day of month, 1 - 31 hour As Byte '// png_byte hour; /* hour of day, 0 - 23 minute As Byte '// png_byte minute; /* minute of hour, 0 - 59 second As Byte '// png_byte second; /* second of minute, 0 - 60 (for leap seconds) End Type ' png_unknown_chunk is a structure to hold queued chunks for which there is no specific support. The idea is ' that we can use this to queue up private chunks for output even though the library doesn't actually know ' about their semantics. Public Type png_unknown_chunk Name As String * 5 '// png_byte name[5]; Data() As Byte '// png_byte *data; Size As Long '// png_size_t size; ' libpng-using applications should NOT directly modify this byte. Location As Byte '// png_byte location; /* mode of operation at read time End Type ' This is used for the transformation routines, as some of them change these values for the row. It also ' should enable using the routines for other purposes. Public Type png_row_info Width As Long '// png_uint_32 width; /* width of row rowbytes As Long '// png_uint_32 rowbytes; /* number of bytes in row color_type As Byte '// png_byte color_type; /* color type of row bit_depth As Byte '// png_byte bit_depth; /* bit depth of row Channels As Byte '// png_byte channels; /* number of channels (1, 2, 3, or 4) pixel_depth As Byte '// png_byte pixel_depth; /* bits per pixel (depth * channels) End Type ' png_info is a structure that holds the information in a PNG file so that the application can find out the ' characteristics of the image. If you are reading the file, this structure will tell you what is in the PNG ' file. If you are writing the file, fill in the information you want to put into the PNG file, then call ' png_write_info(). The names chosen should be very close to the PNG specification, so consult that document ' for information about the meaning of each field. ' ' With libpng < 0.95, it was only possible to directly set and read the the values in the png_info_struct, ' which meant that the contents and order of the values had to remain fixed. With libpng 0.95 and later, ' however, there are now functions that abstract the contents of png_info_struct from the application, so this ' makes it easier to use libpng with dynamic libraries, and even makes it possible to use libraries that don't ' have all of the libpng ancillary chunk-handing functionality. ' ' In any case, the order of the parameters in png_info_struct should NOT be changed for as long as possible to ' keep compatibility with applications that use the old direct-access method with png_info_struct. ' ' The following members may have allocated storage attached that should be cleaned up before the structure is ' discarded: palette, trans, text, pcal_purpose, pcal_units, pcal_params, hist, iccp_name, iccp_profile, ' splt_palettes, scal_unit, row_pointers, and unknowns. By default, these are automatically freed when the ' info structure is deallocated, if they were allocated internally by libpng. This behavior can be changed by ' means of the png_data_freer() function. ' ' More allocation details: all the chunk-reading functions that change these members go through the ' corresponding png_set_* functions. A function to clear these members is available: see png_free_data(). ' The png_set_* functions do not depend on being able to point info structure members to any of the storage ' they are passed (they make their own copies), EXCEPT that the png_set_text functions use the same storage ' passed to them in the text_ptr or itxt_ptr structure argument, and the png_set_rows and png_set_unknowns ' functions do not make their own copies. Public Type png_info ' The following are necessary for every PNG file Width As Long '// png_uint_32 /* width of image in pixels (from IHDR) Height As Long '// png_uint_32 /* height of image in pixels (from IHDR) valid As Long '// png_uint_32 /* valid chunk data (see PNG_INFO_ below) rowbytes As Long '// png_uint_32 /* bytes needed to hold an untransformed row Palette() As png_color '// png_colorp /* array of color values (valid & PNG_INFO_PLTE) num_palette As Integer '// png_uint_16 /* number of color entries in "palette" (PLTE) num_trans As Integer '// png_uint_16 /* number of transparent palette color (tRNS) bit_depth As Byte '// png_byte /* 1, 2, 4, 8, or 16 bits/channel (from IHDR) color_type As Byte '// png_byte /* see PNG_COLOR_TYPE_ below (from IHDR) ' The following three should have been named *_method not *_type compression_type As Byte '// png_byte /* must be PNG_COMPRESSION_TYPE_BASE (IHDR) filter_type As Byte '// png_byte /* must be PNG_FILTER_TYPE_BASE (from IHDR) interlace_type As Byte '// png_byte /* One of PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 ' The following is informational only on read, and not used on writes. Channels As Byte '// png_byte /* number of data channels per pixel (1, 2, 3, 4) pixel_depth As Byte '// png_byte /* number of bits per pixel spare_byte As Byte '// png_byte /* to align the data, and for future use signature(7) As Byte '// png_byte[8] /* magic bytes read by libpng from start of file '------------------------------------------------------------------------------------------------------------- ' The rest of the data is optional. If you are reading, check the valid field to see if the information ' in these are valid. If you are writing, set the valid field to those chunks you want written, and ' initialize the appropriate fields below. '------------------------------------------------------------------------------------------------------------- ' The gAMA chunk describes the gamma characteristics of the system on which the image was created, ' normally in the range [1.0, 2.5]. Data is valid if (valid & PNG_INFO_gAMA) is non-zero. gamma As Single '// float /* gamma value of image, if (valid & PNG_INFO_gAMA) ' GR-P, 0.96a (Data valid if (valid & PNG_INFO_sRGB) non-zero) srgb_intent As Byte '// png_byte /* sRGB rendering intent [0, 1, 2, or 3] ' The tEXt, and zTXt chunks contain human-readable textual data in uncompressed, compressed, and optionally ' compressed forms, respectively. The data in "text" is an array of pointers to uncompressed, null- ' terminated C strings. Each chunk has a keyword that describes the textual data contained in that chunk. ' Keywords are not required to be unique, and the text string may be empty. Any number of text chunks may ' be in an image. num_text As Long '// int /* number of comments read/to write max_text As Long '// int /* current size of text array Text() As png_text '// png_textp /* array of comments read/to write ' The tIME chunk holds the last time the displayed image data was modified. See the png_time struct for ' the contents of this struct. mod_time As png_time '// png_time ' The sBIT chunk specifies the number of significant high-order bits in the pixel data. Values are in the ' range [1, bit_depth], and are only specified for the channels in the pixel data. The contents of the ' low-order bits is not specified. Data is valid if (valid & PNG_INFO_sBIT) is non-zero. sig_bit As png_color_8 '// png_color_8 /* significant bits in color channels ' The tRNS chunk supplies transparency data for paletted images and other image types that don't need a ' full alpha channel. There are "num_trans" transparency values for a paletted image, stored in the same ' order as the palette colors, starting from index 0. Values for the data are in the range [0, 255], ' ranging from fully transparent to fully opaque, respectively. For non-paletted images, there is a single ' color specified that should be treated as fully transparent. Data is valid if (valid & PNG_INFO_tRNS) ' is non-zero. trans() As Byte '// png_bytep /* transparent values for paletted image trans_values As png_color_16 '// png_color_16 /* transparent color for non-palette image ' The bKGD chunk gives the suggested image background color if the display program does not have its own ' background color and the image is needs to composited onto a background before display. The colors in ' "background" are normally in the same color space/depth as the pixel data. Data is valid if (valid & ' PNG_INFO_bKGD) is non-zero. background As png_color_16 '// png_color_16 ' The oFFs chunk gives the offset in "offset_unit_type" units rightwards and downwards from the top-left ' corner of the display, page, or other application-specific co-ordinate space. See the PNG_OFFSET_ defines ' below for the unit types. Valid if (valid & PNG_INFO_oFFs) non-zero. x_offset As Long '// png_int_32 /* x offset on page y_offset As Long '// png_int_32 /* y offset on page offset_unit_type As Byte '// png_byte /* offset units type ' The pHYs chunk gives the physical pixel density of the image for display or printing in "phys_unit_type" ' units (see PNG_RESOLUTION_* defines below). Data is valid if (valid & PNG_INFO_pHYs) is non-zero. x_pixels_per_unit As Long '// png_uint_32 /* horizontal pixel density y_pixels_per_unit As Long '// png_uint_32 /* vertical pixel density phys_unit_type As Byte '// png_byte /* resolution type (see PNG_RESOLUTION_ below) ' The hIST chunk contains the relative frequency or importance of the various palette entries, so that a ' viewer can intelligently select a reduced-color palette, if required. Data is an array of "num_palette" ' values in the range [0,65535]. Data valid if (valid & PNG_INFO_hIST) is non-zero. hist() As Integer '//png_uint_16p ' The cHRM chunk describes the CIE color characteristics of the monitor on which the PNG was created. This ' data allows the viewer to do gamut mapping of the input image to ensure that the viewer sees the same ' colors in the image as the creator. Values are in the range [0.0, 0.8]. Data valid if (valid & ' PNG_INFO_cHRM) non-zero. x_white As Single '// float y_white As Single '// float x_red As Single '// float y_red As Single '// float x_green As Single '// float y_green As Single '// float x_blue As Single '// float y_blue As Single '// float ' The pCAL chunk describes a transformation between the stored pixel values and original physical data ' values used to create the image. The integer range [0, 2^bit_depth - 1] maps to the floating-point ' range given by [pcal_X0, pcal_X1], and are further transformed by a (possibly non-linear) trans- ' formation function given by "pcal_type" and "pcal_params" into "pcal_units". Please see the ' PNG_EQUATION_* defines below, and the PNG-Group's PNG extensions document for a complete description of ' the transformations and how they should be implemented, and for a description of the ASCII parameter ' strings. Data values are valid if (valid & PNG_INFO_pCAL) non-zero. pcal_purpose As String '// png_charp /* pCAL chunk description string pcal_X0 As Long '// png_int_32 /* minimum value pcal_X1 As Long '// png_int_32 /* maximum value pcal_units As String '// png_charp /* Latin-1 string giving physical units pcal_params() As String '// png_charpp /* ASCII strings containing parameter values pcal_type As Byte '// png_byte /* equation type (see PNG_EQUATION_ below) pcal_nparams As Byte '// png_byte /* number of parameters given in pcal_params ' New members added in libpng-1.0.6 free_me As Long '// png_uint_32 /* flags items libpng is responsible for freeing ' storage for unknown chunks that the library doesn't recognize. unknown_chunks() As png_unknown_chunk '// png_unknown_chunkp unknown_chunks_num As Long '// png_size_t ' iCCP chunk data. iccp_name As String '// png_charp /* profile name iccp_profile As String '// png_charp /* International Color Consortium profile data (Note to maintainer: should be png_bytep) iccp_proflen As Long '// png_uint_32 /* ICC profile data length iccp_compression As Byte '// png_byte /* Always zero ' data on sPLT chunks (there may be more than one). splt_palettes As png_sPLT_t '// png_sPLT_tp splt_palettes_num As Long '// png_uint_32 ' The sCAL chunk describes the actual physical dimensions of the subject matter of the graphic. The chunk ' contains a unit specification a byte value, and two ASCII strings representing floating-point values. ' The values are width and height corresponsing to one pixel in the image. This external representation is ' converted to double here. Data values are valid if (valid & PNG_INFO_sCAL) is non-zero. scal_unit As Byte '// png_byte /* unit of physical scale scal_pixel_width As Double '// double /* width of one pixel scal_pixel_height As Double '// double /* height of one pixel scal_s_width As String '// png_charp /* string containing height scal_s_height As String '// png_charp /* string containing width ' Memory has been allocated if (valid & PNG_ALLOCATED_INFO_ROWS) non-zero Data valid if (valid & PNG_INFO_IDAT) non-zero row_pointers() As Byte '// png_bytepp /* the image bits (MULTI-DIMENTIONAL ARRAY) int_gamma As Long '// png_fixed_point /* gamma of image, if (valid & PNG_INFO_gAMA) int_x_white As Long '// png_fixed_point int_y_white As Long '// png_fixed_point int_x_red As Long '// png_fixed_point int_y_red As Long '// png_fixed_point int_x_green As Long '// png_fixed_point int_y_green As Long '// png_fixed_point int_x_blue As Long '// png_fixed_point int_y_blue As Long '// png_fixed_point End Type ' The structure that holds the information to read and write PNG files. This structure is an internal ' structure that will not, for the most part, be used by a user except as the first variable passed to ' every libpng function call. The only people who need to care about what is inside of this are the ' people who will be modifying the library for their own special needs. It should NOT be accessed directly ' by an application, except to store the jmp_buf. Public Type png_struct jmpbuf As Long '// jmp_buf /* used in png_error */ error_fcn As Long '// png_error_ptr /* function for printing errors and aborting */ warning_fcn As Long '// png_error_ptr /* function for printing warnings */ error_ptr As Long '// png_voidp /* user supplied struct for error functions */ write_data_fcn As Long '// png_rw_ptr /* function for writing output data */ read_data_fcn As Long '// png_rw_ptr /* function for reading input data */ io_ptr As Long '// png_voidp /* ptr to application struct for I/O functions*/ read_user_transform_fcn As Long '// png_user_transform_ptr /* user read transform */ write_user_transform_fcn As Long '// png_user_transform_ptr /* user write transform */ ' These were added in libpng-1.0.2 user_transform_ptr As Long '// png_voidp /* user supplied struct for user transform */ user_transform_depth As Byte '// png_byte /* bit depth of user transformed pixels */ user_transform_channels As Byte '// png_byte /* channels in user transformed pixels */ mode As Long '// png_uint_32 /* tells us where we are in the PNG file Flags As Long '// png_uint_32 /* flags indicating various things to libpng transformations As Long '// png_uint_32 /* which transformations to perform zstream As z_stream '// z_stream /* pointer to decompression structure (below) zbuf() As Byte '// png_bytep /* buffer for zlib zbuf_size As Long '// png_size_t /* size of zbuf Level As Long '// int /* holds zlib compression level zlib_method As Long '// int /* holds zlib compression method zlib_window_bits As Long '// int /* holds zlib compression window bits zlib_mem_level As Long '// int /* holds zlib compression memory level zlib_strategy As Long '// int /* holds zlib compression strategy Width As Long '// png_uint_32 /* width of image in pixels Height As Long '// png_uint_32 /* height of image in pixels num_rows As Long '// png_uint_32 /* number of rows in current pass usr_width As Long '// png_uint_32 /* width of row at start of write rowbytes As Long '// png_uint_32 /* size of row in bytes irowbytes As Long '// png_uint_32 /* size of current interlaced row in bytes iwidth As Long '// png_uint_32 /* width of current interlaced row in pixels row_number As Long '// png_uint_32 /* current row in interlace pass prev_row() As Byte '// png_bytep /* buffer to save previous (unfiltered) row row_buf() As Byte '// png_bytep /* buffer to save current (unfiltered) row sub_row() As Byte '// png_bytep /* buffer to save "sub" row when filtering up_row() As Byte '// png_bytep /* buffer to save "up" row when filtering avg_row() As Byte '// png_bytep /* buffer to save "avg" row when filtering paeth_row() As Byte '// png_bytep /* buffer to save "Paeth" row when filtering row_info As png_row_info '// png_row_info /* used for transformation routines idat_size As Long '// png_uint_32 /* current IDAT size for read crc As Long '// png_uint_32 /* current chunk CRC value Palette() As png_color '// png_colorp /* palette from the input file num_palette As Integer '// png_uint_16 /* number of color entries in palette num_trans As Integer '// png_uint_16 /* number of transparency values chunk_name(4) As Byte '// png_byte[5] /* null-terminated name of current chunk compression As Byte '// png_byte /* file compression type (always 0) Filter As Byte '// png_byte /* file filter type (always 0) interlaced As Byte '// png_byte /* PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 pass As Byte '// png_byte /* current interlace pass (0 - 6) do_filter As Byte '// png_byte /* row filter flags (see PNG_FILTER_ below) color_type As Byte '// png_byte /* color type of file bit_depth As Byte '// png_byte /* bit depth of file usr_bit_depth As Byte '// png_byte /* bit depth of users row pixel_depth As Byte '// png_byte /* number of bits per pixel Channels As Byte '// png_byte /* number of channels in file usr_channels As Byte '// png_byte /* channels at start of write sig_bytes As Byte '// png_byte /* magic bytes read/written from start of file filler As Integer '// png_uint_16 /* filler bytes for pixel expansion background_gamma_type As Byte '// png_byte /* background_gamma As Single '// float /* background As png_color_16 '// png_color_16 /* background color in screen gamma space background_1 As png_color_16 '// png_color_16 /* background normalized to gamma 1.0 output_flush_fcn As Long '// png_flush_ptr /* Function for flushing output flush_dist As Long '// png_uint_32 /* how many rows apart to flush, 0 - no flush flush_rows As Long '// png_uint_32 /* number of rows written since last flush gamma_shift As Long '// int /* number of "insignificant" bits 16-bit gamma gamma As Single '// float /* file gamma value screen_gamma As Single '// float /* screen gamma value (display_exponent) gamma_table() As Byte '// png_bytep /* gamma table for 8-bit depth files gamma_from_1() As Byte '// png_bytep /* converts from 1.0 to screen gamma_to_1() As Byte '// png_bytep /* converts from file to 1.0 gamma_16_table() As Integer '// png_uint_16pp /* gamma table for 16-bit depth files - ARRAY OF INTEGER ARRAYS (multi-dimentional array) gamma_16_from_1() As Integer '// png_uint_16pp /* converts from 1.0 to screen - ARRAY OF INTEGER ARRAYS (multi-dimentional array) gamma_16_to_1() As Integer '// png_uint_16pp /* converts from file to 1.0 - ARRAY OF INTEGER ARRAYS (multi-dimentional array) sig_bit As png_color_8 '// png_color_8 /* significant bits in each available channel Shift As png_color_8 '// png_color_8 /* shift for significant bit tranformation trans() As Byte '// png_bytep /* transparency values for paletted files trans_values As png_color_16 '// png_color_16 /* transparency values for non-paletted files read_row_fcn As Long '// png_read_status_ptr /* called after each row is decoded write_row_fcn As Long '// png_write_status_ptr /* called after each row is encoded into_fcn As Long '// png_progressive_info_ptr /* called after header data fully read row_fcn As Long '// png_progressive_row_ptr /* called after each prog. row is decoded end_fcn As Long '// png_progressive_end_ptr /* called after image is complete save_buffer_ptr As Byte '// png_bytep /* current location in save_buffer save_buffer() As Byte '// png_bytep /* buffer for previously read data current_buffer_ptr As Byte '// png_bytep /* current location in current_buffer current_buffer() As Byte '// png_bytep /* buffer for recently used data push_length As Long '// png_uint_32 /* size of current input chunk skip_length As Long '// png_uint_32 /* bytes to skip in input data save_buffer_size As Long '// png_size_t /* amount of data now in save_buffer save_buffer_max As Long '// png_size_t /* total size of save_buffer buffer_size As Long '// png_size_t /* total amount of available input data current_buffer_size As Long '// png_size_t /* amount of data now in current_buffer process_mode As Long '// int /* what push library is currently doing cur_palette As Long '// int /* current push library palette index current_text_size As Long '// png_size_t /* current size of text input data current_text_left As Long '// png_size_t /* how much text left to read in input current_text As String '// png_charp /* current text chunk buffer current_text_ptr As Long '// png_charp /* current location in current_text ' for the Borland special 64K segment handler offset_table_ptr() As Byte '// png_bytepp (MULTI-DIMENTIONAL ARRAY) offset_table() As Byte '// png_bytep offset_table_number As Integer '// png_uint_16 offset_table_count As Integer '// png_uint_16 offset_table_count_free As Integer '// png_uint_16 palette_lookup() As Byte '// png_bytep /* lookup table for dithering dither_index() As Byte '// png_bytep /* index translation for palette files hist() As Integer '// png_uint_16p /* histogram heuristic_method As Byte '// png_byte /* heuristic for row filter selection num_prev_filters As Byte '// png_byte /* number of weights for previous rows prev_filter() As Byte '// png_bytep /* filter type(s) of previous row(s) filter_wiehgts() As Integer '// png_uint_16p /* weight(s) for previous line(s) inv_filter_weights() As Integer '// png_uint_16p /* 1/weight(s) for previous line(s) filter_costs() As Integer '// png_uint_16p /* relative filter calculation cost inv_filter_costs() As Integer '// png_uint_16p /* 1/relative filter calculation cost time_buffer As String '// png_charp /* String to hold RFC 1123 time text ' New members added in libpng-1.0.6 free_me As Long '// png_uint_32 /* flags items libpng is responsible for freeing user_chunk_ptr As Long '// png_voidp /* read_user_chunk_fcn As Long '// png_user_chunk_ptr /* user read chunk handler num_chunk_list As Long '// int chunk_list() As Byte '// png_bytep chunk_list; ' New members added in libpng-1.0.3 rgb_to_gray_status As Byte '// png_byte /* rgb_to_gray_red_coeff As Integer '// png_uint_16 /* Changed from png_byte in libpng-1.0.6 rgb_to_gray_green_coeff As Integer '// png_uint_16 /* Changed from png_byte in libpng-1.0.6 rgb_to_gray_blue_coeff As Integer '// png_uint_16 /* Changed from png_byte in libpng-1.0.6 ' New member added in libpng-1.0.4 (renamed in 1.0.9) mng_features_permitted As Byte '// png_byte /* changed from png_byte to png_uint_32 at version 1.2.0 ' New member added in libpng-1.0.7 int_gamma As Long '// png_fixed_point ' New member added in libpng-1.0.9, ifdef'ed out in 1.0.12, enabled in 1.2.0 filter_type As Byte '// png_byte ' New member added in libpng-1.0.10, ifdef'ed out in 1.2.0 row_buf_size As Long '// png_uint_32 ' New members added in libpng-1.2.0 mmx_bitdepth_threshold As Byte '// png_byte mmx_rowbytes_threshold As Long '// png_uint_32 asm_flags As Long '// png_uint_32 ' New members added in libpng-1.0.2 but first enabled by default in 1.2.0 mem_ptr As Long '// png_voidp /* user supplied struct for mem functions malloc_fcn As Long '// png_malloc_ptr /* function for allocating memory free_fcn As Long '// png_free_ptr /* function for freeing memory End Type 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ' CONSTANTS DEFINITIONS 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ' Version information for png.h - this should match the version in png.c Public Const PNG_LIBPNG_VER_STRING = "1.0.12" Public Const PNG_LIBPNG_VER_SONUM = 2 'Public Const PNG_LIBPNG_VER_DLLNUM = %DLLNUM% ' These should match the first 3 components of PNG_LIBPNG_VER_STRING: Public Const PNG_LIBPNG_VER_MAJOR = 1 Public Const PNG_LIBPNG_VER_MINOR = 0 Public Const PNG_LIBPNG_VER_RELEASE = 12 ' This should match the numeric part of the final component of PNG_LIBPNG_VER_STRING, omitting any leading zero: Public Const PNG_LIBPNG_VER_BUILD = 0 Public Const PNG_LIBPNG_BUILD_ALPHA = 1 Public Const PNG_LIBPNG_BUILD_BETA = 2 Public Const PNG_LIBPNG_BUILD_RC = 3 Public Const PNG_LIBPNG_BUILD_STABLE = 4 Public Const PNG_LIBPNG_BUILD_TYPEMASK = 7 Public Const PNG_LIBPNG_BUILD_PATCH = 8 ' Can be OR'ed with STABLE only Public Const PNG_LIBPNG_BUILD_TYPE = 4 ' Careful here. At one time, Guy wanted to use 082, but that would be octal. We must not include leading ' zeros. Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only version 1.0.0 was mis-numbered 100 ' instead of 10000). From version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release Public Const PNG_LIBPNG_VER = 10012 ' 1.0.12 ' Supported compression types for text in PNG files (tEXt, and zTXt). The values of the PNG_TEXT_COMPRESSION_ ' defines should NOT be changed. Public Const PNG_TEXT_COMPRESSION_NONE_WR = -3 Public Const PNG_TEXT_COMPRESSION_zTXt_WR = -2 Public Const PNG_TEXT_COMPRESSION_NONE = -1 Public Const PNG_TEXT_COMPRESSION_zTXt = 0 Public Const PNG_ITXT_COMPRESSION_NONE = 1 Public Const PNG_ITXT_COMPRESSION_zTXt = 2 'Public Const PNG_TEXT_COMPRESSION_LAST = 3 ' Not a valid value ' Maximum positive integer used in PNG is (2^31)-1 Public Const PNG_MAX_UINT = &H7FFFFFFF ' color type masks Public Const PNG_COLOR_MASK_PALETTE = 1 Public Const PNG_COLOR_MASK_COLOR = 2 Public Const PNG_COLOR_MASK_ALPHA = 4 ' Color types. Note that not all combinations are legal Public Enum PNG_COLOR_TYPES 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 End Enum ' Color depths (bits per pixel) Public Enum PNG_COLOR_DEPTHS PNG_COLOR_DEPTH_1 = 1 PNG_COLOR_DEPTH_2 = 2 PNG_COLOR_DEPTH_4 = 4 PNG_COLOR_DEPTH_8 = 8 PNG_COLOR_DEPTH_16 = 16 End Enum ' This is for compression type. PNG 1.0-1.2 only define the single type. Public Enum PNG_COMPRESSION_TYPES PNG_COMPRESSION_TYPE_BASE = 0 ' Deflate method 8, 32K window PNG_COMPRESSION_TYPE_DEFAULT = PNG_COMPRESSION_TYPE_BASE End Enum ' This is for filter type. PNG 1.0-1.2 only define the single type. Public Enum PNG_FILTER_TYPES PNG_FILTER_TYPE_BASE = 0 ' Single row per-byte filtering PNG_FILTER_TYPE_DEFAULT = PNG_FILTER_TYPE_BASE End Enum Public Const PNG_INTRAPIXEL_DIFFERENCING = 64 ' Used only in MNG datastreams ' These are for the interlacing type. These values should NOT be changed. Public Enum PNG_INTERLACES PNG_INTERLACE_NONE = 0 ' Non-interlaced image PNG_INTERLACE_ADAM7 = 1 ' Adam7 interlacing End Enum Public Const PNG_INTERLACE_LAST = 2 ' Not a valid value ' These are for the oFFs chunk. These values should NOT be changed. Public Const PNG_OFFSET_PIXEL = 0 ' Offset in pixels Public Const PNG_OFFSET_MICROMETER = 1 ' Offset in micrometers (1/10^6 meter) Public Const PNG_OFFSET_LAST = 2 ' Not a valid value ' These are for the pCAL chunk. These values should NOT be changed. Public Const PNG_EQUATION_LINEAR = 0 ' Linear transformation Public Const PNG_EQUATION_BASE_E = 1 ' Exponential base e transform Public Const PNG_EQUATION_ARBITRARY = 2 ' Arbitrary base exponential transform Public Const PNG_EQUATION_HYPERBOLIC = 3 ' Hyperbolic sine transformation Public Const PNG_EQUATION_LAST = 4 ' Not a valid value ' These are for the sCAL chunk. These values should NOT be changed. Public Const PNG_SCALE_UNKNOWN = 0 ' unknown unit (image scale) Public Const PNG_SCALE_METER = 1 ' meters per pixel Public Const PNG_SCALE_RADIAN = 2 ' radians per pixel Public Const PNG_SCALE_LAST = 3 ' Not a valid value ' These are for the pHYs chunk. These values should NOT be changed. Public Const PNG_RESOLUTION_UNKNOWN = 0 ' pixels/unknown unit (aspect ratio) Public Const PNG_RESOLUTION_METER = 1 ' pixels/meter Public Const PNG_RESOLUTION_LAST = 2 ' Not a valid value ' These are for the sRGB chunk. These values should NOT be changed. Public Const PNG_sRGB_INTENT_PERCEPTUAL = 0 Public Const PNG_sRGB_INTENT_RELATIVE = 1 Public Const PNG_sRGB_INTENT_SATURATION = 2 Public Const PNG_sRGB_INTENT_ABSOLUTE = 3 Public Const PNG_sRGB_INTENT_LAST = 4 ' Not a valid value ' This is for text chunks Public Const PNG_KEYWORD_MAX_LENGTH = 79 ' Maximum number of entries in PLTE/sPLT/tRNS arrays Public Const PNG_MAX_PALETTE_LENGTH = 256 ' These determine if an ancillary chunk's data has been successfully read from the PNG header, or if the ' application has filled in the corresponding data in the info_struct to be written into the output file. ' The values of the PNG_INFO_ defines should NOT be changed. Public Const PNG_INFO_gAMA = &H1 Public Const PNG_INFO_sBIT = &H2 Public Const PNG_INFO_cHRM = &H4 Public Const PNG_INFO_PLTE = &H8 Public Const PNG_INFO_tRNS = &H10 Public Const PNG_INFO_bKGD = &H20 Public Const PNG_INFO_hIST = &H40 Public Const PNG_INFO_pHYs = &H80 Public Const PNG_INFO_oFFs = &H100 Public Const PNG_INFO_tIME = &H200 Public Const PNG_INFO_pCAL = &H400 Public Const PNG_INFO_sRGB = &H800 ' GR-P, 0.96a Public Const PNG_INFO_iCCP = &H1000 ' ESR, 1.0.6 Public Const PNG_INFO_sPLT = &H2000 ' ESR, 1.0.6 Public Const PNG_INFO_sCAL = &H4000 ' ESR, 1.0.6 Public Const PNG_INFO_IDAT = &H8000 ' ESR, 1.0.6 ' Transform masks for the high-level interface Public Enum PNG_TRANSFORMS PNG_TRANSFORM_IDENTITY = &H0 ' read and write - No transformation PNG_TRANSFORM_STRIP_16 = &H1 ' read only - Strip 16-bit samples to 8 bits PNG_TRANSFORM_STRIP_ALPHA = &H2 ' read only - Discard the alpha channel PNG_TRANSFORM_PACKING = &H4 ' read and write - Expand 1, 2 and 4-bit samples to bytes PNG_TRANSFORM_PACKSWAP = &H8 ' read and write - Change order of packed pixels to LSB first PNG_TRANSFORM_EXPAND = &H10 ' read only - Perform set_expand() PNG_TRANSFORM_INVERT_MONO = &H20 ' read and write - Invert monochrome images PNG_TRANSFORM_SHIFT = &H40 ' read and write - Normalize pixels to the sBIT depth PNG_TRANSFORM_BGR = &H80 ' read and write - Flip RGB to BGR, RGBA to BGRA PNG_TRANSFORM_SWAP_ALPHA = &H100 ' read and write - Flip RGBA to ARGB or GA to AG PNG_TRANSFORM_SWAP_ENDIAN = &H200 ' read and write - Byte-swap 16-bit samples PNG_TRANSFORM_INVERT_ALPHA = &H400 ' read and write - Change alpha from opacity to transparency PNG_TRANSFORM_STRIP_FILLER = &H800 ' write only - End Enum ' Flags for MNG supported features Public Const PNG_FLAG_MNG_EMPTY_PLTE = &H1 Public Const PNG_FLAG_MNG_FILTER_64 = &H4 Public Const PNG_ALL_MNG_FEATURES = &H5 ' Handle alpha and tRNS by replacing with a background color. Public Const PNG_BACKGROUND_GAMMA_UNKNOWN = 0 Public Const PNG_BACKGROUND_GAMMA_SCREEN = 1 Public Const PNG_BACKGROUND_GAMMA_FILE = 2 Public Const PNG_BACKGROUND_GAMMA_UNIQUE = 3 ' Values for png_set_crc_action() to say how to handle CRC errors in ancillary and critical chunks, and ' whether to use the data contained therein. Note that it is impossible to "discard" data in a critical ' chunk. For versions prior to 0.90, the action was always error/quit, * whereas in version 0.90 and later, ' the action for CRC errors in ancillary chunks is warn/discard. These values should NOT be changed. ' ' value action:critical action:ancillary '------------------------------------------------------------------------------ Public Const PNG_CRC_DEFAULT = 0 ' error/quit warn/discard data Public Const PNG_CRC_ERROR_QUIT = 1 ' error/quit error/quit Public Const PNG_CRC_WARN_DISCARD = 2 ' (INVALID) warn/discard data Public Const PNG_CRC_WARN_USE = 3 ' warn/use data warn/use data Public Const PNG_CRC_QUIET_USE = 4 ' quiet/use data quiet/use data Public Const PNG_CRC_NO_CHANGE = 5 ' use current value use current value ' Flags for png_set_filter() to say which filters to use. The flags are chosen so that they don't conflict ' with real filter types below, in case they are supplied instead of the #defined constants. These values ' should NOT be changed. Public Const PNG_NO_FILTERS = &H0 Public Const PNG_FILTER_NONE = &H8 Public Const PNG_FILTER_SUB = &H10 Public Const PNG_FILTER_UP = &H20 Public Const PNG_FILTER_AVG = &H40 Public Const PNG_FILTER_PAETH = &H80 Public Const PNG_ALL_FILTERS = (PNG_FILTER_NONE Or PNG_FILTER_SUB Or PNG_FILTER_UP Or PNG_FILTER_AVG Or PNG_FILTER_PAETH) ' Filter values (not flags) - used in pngwrite.c, pngwutil.c for now. These defines should NOT be changed. Public Const PNG_FILTER_VALUE_NONE = 0 Public Const PNG_FILTER_VALUE_SUB = 1 Public Const PNG_FILTER_VALUE_UP = 2 Public Const PNG_FILTER_VALUE_AVG = 3 Public Const PNG_FILTER_VALUE_PAETH = 4 Public Const PNG_FILTER_VALUE_LAST = 5 ' Heuristic used for row filter selection. These defines should NOT be changed. Public Const PNG_FILTER_HEURISTIC_DEFAULT = 0 ' Currently "UNWEIGHTED" Public Const PNG_FILTER_HEURISTIC_UNWEIGHTED = 1 ' Used by libpng < 0.95 Public Const PNG_FILTER_HEURISTIC_WEIGHTED = 2 ' Experimental feature Public Const PNG_FILTER_HEURISTIC_LAST = 3 ' Not a valid value ' assignments for png_data_freer Public Const PNG_DESTROY_WILL_FREE_DATA = 1 Public Const PNG_SET_WILL_FREE_DATA = 1 Public Const PNG_USER_WILL_FREE_DATA = 2 ' Flags for png_ptr->free_me and info_ptr->free_me Public Const PNG_FREE_HIST = &H8 Public Const PNG_FREE_ICCP = &H10 Public Const PNG_FREE_SPLT = &H20 Public Const PNG_FREE_ROWS = &H40 Public Const PNG_FREE_PCAL = &H80 Public Const PNG_FREE_SCAL = &H100 Public Const PNG_FREE_UNKN = &H200 Public Const PNG_FREE_LIST = &H400 Public Const PNG_FREE_PLTE = &H1000 Public Const PNG_FREE_TRNS = &H2000 Public Const PNG_FREE_TEXT = &H4000 Public Const PNG_FREE_ALL = &H7FFF Public Const PNG_FREE_MUL = &H4220 ' PNG_FREE_SPLT|PNG_FREE_TEXT|PNG_FREE_UNKN ' Various modes of operation. Note that after an init, mode is set to zero automatically when the structure ' is created. Public Const PNG_HAVE_IHDR = &H1 Public Const PNG_HAVE_PLTE = &H2 Public Const PNG_HAVE_IDAT = &H4 Public Const PNG_AFTER_IDAT = &H8 Public Const PNG_HAVE_IEND = &H10 Public Const PNG_HAVE_gAMA = &H20 Public Const PNG_HAVE_cHRM = &H40 Public Const PNG_HAVE_sRGB = &H80 Public Const PNG_HAVE_CHUNK_HEADER = &H100 Public Const PNG_WROTE_tIME = &H200 Public Const PNG_WROTE_INFO_BEFORE_PLTE = &H400 Public Const PNG_BACKGROUND_IS_GRAY = &H800 Public Const PNG_HAVE_PNG_SIGNATURE = &H1000 ' flags for the transformations the PNG library does on the image data Public Const PNG_BGR = &H1 Public Const PNG_INTERLACE = &H2 Public Const PNG_PACK = &H4 Public Const PNG_SHIFT = &H8 Public Const PNG_SWAP_BYTES = &H10 Public Const PNG_INVERT_MONO = &H20 Public Const PNG_DITHER = &H40 Public Const PNG_BACKGROUND = &H80 Public Const PNG_BACKGROUND_EXPAND = &H100 ' NOTE: &H0200 is unused Public Const PNG_16_TO_8 = &H400 Public Const PNG_RGBA = &H800 Public Const PNG_EXPAND = &H1000 Public Const PNG_GAMMA = &H2000 Public Const PNG_GRAY_TO_RGB = &H4000 Public Const PNG_FILLER = &H8000 Public Const PNG_PACKSWAP = &H10000 Public Const PNG_SWAP_ALPHA = &H20000 Public Const PNG_STRIP_ALPHA = &H40000 Public Const PNG_INVERT_ALPHA = &H80000 Public Const PNG_USER_TRANSFORM = &H100000 Public Const PNG_RGB_TO_GRAY_ERR = &H200000 Public Const PNG_RGB_TO_GRAY_WARN = &H400000 Public Const PNG_RGB_TO_GRAY = &H600000 ' two bits, RGB_TO_GRAY_ERR | WARN ' flags for png_create_struct Public Const PNG_STRUCT_PNG = &H1 Public Const PNG_STRUCT_INFO = &H2 ' Scaling factor for filter heuristic weighting calculations Public Const PNG_WEIGHT_SHIFT = 8 Public Const PNG_WEIGHT_FACTOR = 256 '(1 << (PNG_WEIGHT_SHIFT)) Public Const PNG_COST_SHIFT = 3 Public Const PNG_COST_FACTOR = 4 '(1 << (PNG_COST_SHIFT)) ' flags for the png_ptr->flags rather than declaring a byte for each one Public Const PNG_FLAG_ZLIB_CUSTOM_STRATEGY = &H1 Public Const PNG_FLAG_ZLIB_CUSTOM_LEVEL = &H2 Public Const PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL = &H4 Public Const PNG_FLAG_ZLIB_CUSTOM_WINDOW_BITS = &H8 Public Const PNG_FLAG_ZLIB_CUSTOM_METHOD = &H10 Public Const PNG_FLAG_ZLIB_FINISHED = &H20 Public Const PNG_FLAG_ROW_INIT = &H40 Public Const PNG_FLAG_FILLER_AFTER = &H80 Public Const PNG_FLAG_CRC_ANCILLARY_USE = &H100 Public Const PNG_FLAG_CRC_ANCILLARY_NOWARN = &H200 Public Const PNG_FLAG_CRC_CRITICAL_USE = &H400 Public Const PNG_FLAG_CRC_CRITICAL_IGNORE = &H800 Public Const PNG_FLAG_FREE_PLTE = &H1000 Public Const PNG_FLAG_FREE_TRNS = &H2000 Public Const PNG_FLAG_FREE_HIST = &H4000 Public Const PNG_FLAG_KEEP_UNKNOWN_CHUNKS = &H8000 Public Const PNG_FLAG_KEEP_UNSAFE_CHUNKS = &H10000 Public Const PNG_FLAG_LIBRARY_MISMATCH = &H20000 Public Const PNG_FLAG_STRIP_ERROR_NUMBERS = &H40000 Public Const PNG_FLAG_STRIP_ERROR_TEXT = &H80000 ' For use in png_set_keep_unknown, png_handle_as_unknown Public Const HANDLE_CHUNK_AS_DEFAULT = 0 Public Const HANDLE_CHUNK_NEVER = 1 Public Const HANDLE_CHUNK_IF_SAFE = 2 Public Const HANDLE_CHUNK_ALWAYS = 3 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ' VARIABLES USED TO COMMUNICATE BETWEEN THIS MODULE AND "cPNG.cls" 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Public strLastError_Desc As String Public strLastWarning_Desc As String 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ' FUNCTION DEFINITIONS 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ' Converts the local time to a calendar value. '_____________________________________________________________________________________________________________ 'time_t mktime( struct tm *timeptr ); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function mktime Lib "CRTDLL.DLL" (ByRef timeptr As tm) As Long ' Converts a time value to a structure. '_____________________________________________________________________________________________________________ 'struct tm *gmtime( const time_t *timer ); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function gmtime Lib "CRTDLL.DLL" (ByVal Timer As Long) As tm ' Starting with version 1.0.7, you can find out which version of the library you are using at run-time via ' the "png_access_version_number" function. The number libpng_vn is constructed from the major version, minor ' version with leading zero, and release number with leading zero. (e.g., libpng_vn for version 1.0.7 is 10007) '_____________________________________________________________________________________________________________ 'png_uint_32 png_access_version_number (void); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_access_version_number Lib "LIBPNG_VB.DLL" () As Long ' (Obsolete) function to check signature bytes. It does not allow one to check a partial signature. This ' function might be removed in the future - use png_sig_cmp(). Returns true (nonzero) if the file is a PNG. '_____________________________________________________________________________________________________________ 'int png_check_sig (png_bytep sig, int num); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_check_sig Lib "LIBPNG_VB.DLL" (ByRef sig As Byte, ByVal num As Long) As Long '_____________________________________________________________________________________________________________ 'void png_chunk_error (png_structp png_ptr, png_const_charp error); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_chunk_error Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal error As String) '_____________________________________________________________________________________________________________ 'void png_chunk_warning (png_structp png_ptr, png_const_charp message); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_chunk_warning Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal Message As String) '_____________________________________________________________________________________________________________ 'void png_convert_from_struct_tm (png_timep ptime, struct tm FAR * ttime); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_convert_from_struct_tm Lib "LIBPNG_VB.DLL" (ByRef ptime As png_time, ByRef ttime As tm) '_____________________________________________________________________________________________________________ 'void png_convert_from_time_t (png_timep ptime, time_t ttime); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_convert_from_time_t Lib "LIBPNG_VB.DLL" (ByRef ptime As png_time, ByVal ttime As Long) '_____________________________________________________________________________________________________________ 'png_charp png_convert_to_rfc1123 (png_structp png_ptr, png_timep ptime); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_convert_to_rfc1123 Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef ttime As png_time) As String '_____________________________________________________________________________________________________________ 'png_infop png_create_info_struct (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_create_info_struct Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) As Long 'As png_info '_____________________________________________________________________________________________________________ '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); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_create_read_struct Lib "LIBPNG_VB.DLL" (ByVal user_png_ver As String, ByVal error_ptr As Long, ByVal error_fcn As Long, ByVal warn_fcn As Long) As Long 'As png_struct '_____________________________________________________________________________________________________________ '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); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_create_read_struct_2 Lib "LIBPNG_VB.DLL" (ByVal user_png_ver As String, ByVal error_ptr As Long, ByVal error_fcn As Long, ByRef warn_fcn As Long, ByVal mem_ptr As Long, ByVal malloc_fcn As Long, ByVal free_fcn As Long) As Long 'As png_struct '_____________________________________________________________________________________________________________ '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); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_create_write_struct Lib "LIBPNG_VB.DLL" (ByVal user_png_ver As String, ByVal error_ptr As Long, ByVal error_fcn As Long, ByVal warn_fcn As Long) As Long 'As png_struct '_____________________________________________________________________________________________________________ '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); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_create_write_struct_2 Lib "LIBPNG_VB.DLL" (ByVal user_png_ver As String, ByVal error_ptr As Long, ByVal error_fcn As Long, ByVal warn_fcn As Long, ByVal mem_ptr As Long, ByVal malloc_fcn As Long, ByVal free_fcn As Long) As Long 'As png_struct '_____________________________________________________________________________________________________________ 'int png_debug(int level, png_const_charp message); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_debug Lib "LIBPNG_VB.DLL" (ByVal Level As Long, ByVal Message As String) As Long '_____________________________________________________________________________________________________________ 'int png_debug1(int level, png_const_charp message, p1); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_debug1 Lib "LIBPNG_VB.DLL" (ByVal Level As Long, ByVal Message As String, ByRef p1 As Any) As Long '_____________________________________________________________________________________________________________ 'int png_debug2(int level, png_const_charp message, p1, p2); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_debug2 Lib "LIBPNG_VB.DLL" (ByVal Level As Long, ByVal Message As String, ByRef p1 As Any, ByRef P2 As Any) As Long '_____________________________________________________________________________________________________________ 'void png_destroy_info_struct (png_structp png_ptr, png_infopp info_ptr_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_destroy_info_struct Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_destroy_read_struct (png_structpp png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_destroy_read_struct Lib "LIBPNG_VB.DLL" (ByRef png_ptr_ptr As Any, ByRef info_ptr_ptr As Any, ByRef end_info_ptr_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_destroy_write_struct (png_structpp png_ptr_ptr, png_infopp info_ptr_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_destroy_write_struct Lib "LIBPNG_VB.DLL" (ByRef png_ptr_ptr As Any, ByRef info_ptr_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_error (png_structp png_ptr, png_const_charp error); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_error Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal error As String) '_____________________________________________________________________________________________________________ 'void png_free (png_structp png_ptr, png_voidp ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_free Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal ptr As Long) '_____________________________________________________________________________________________________________ 'void png_free_chunk_list (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_free_chunk_list Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_free_default(png_structp png_ptr, png_voidp ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_free_default Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal ptr As Long) '_____________________________________________________________________________________________________________ 'void png_free_data (png_structp png_ptr, png_infop info_ptr, int num); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_free_data Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByVal num As Long) '_____________________________________________________________________________________________________________ 'png_byte png_get_bit_depth (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_bit_depth Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) As Byte '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_bKGD (png_structp png_ptr, png_infop info_ptr, png_color_16p *background); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_bKGD Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef background As png_color_16) As Long '_____________________________________________________________________________________________________________ 'png_byte png_get_channels (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_channels Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) As Byte '_____________________________________________________________________________________________________________ '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); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_cHRM Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef white_x As Double, ByRef white_y As Double, ByRef red_x As Double, ByRef red_y As Double, ByRef green_x As Double, ByRef green_y As Double, ByRef blue_x As Double, ByRef blue_y As Double) As Long '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_cHRM_fixed (png_structp png_ptr, png_infop info_ptr, png_uint_32 *white_x, png_uint_32 *white_y, png_uint_32 *red_x, png_uint_32 *red_y, png_uint_32 *green_x, png_uint_32 *green_y, png_uint_32 *blue_x, png_uint_32 *blue_y); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_cHRM_fixed Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef white_x As Long, ByRef white_y As Long, ByRef red_x As Long, ByRef red_y As Long, ByRef green_x As Long, ByRef green_y As Long, ByRef blue_x As Long, ByRef blue_y As Long) As Long '_____________________________________________________________________________________________________________ 'png_byte png_get_color_type (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_color_type Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) As Byte '_____________________________________________________________________________________________________________ 'png_byte png_get_compression_type (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_compression_type Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) As Byte '_____________________________________________________________________________________________________________ ' The "png_get_copyright" function is available, for convenient use in "about" boxes and the like: ' printf("%s",png_get_copyright(NULL)); '_____________________________________________________________________________________________________________ 'png_byte png_get_copyright (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_copyright Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) As String '_____________________________________________________________________________________________________________ 'png_voidp png_get_error_ptr (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_error_ptr Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) As Long '_____________________________________________________________________________________________________________ 'png_byte png_get_filter_type (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_filter_type Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) As Byte '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_gAMA (png_structp png_ptr, png_infop info_ptr, double *file_gamma); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_gAMA Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef file_gamma As Double) As Long '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_gAMA_fixed (png_structp png_ptr, png_infop info_ptr, png_uint_32 *int_file_gamma); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_gAMA_fixed Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef int_file_gamma As Long) As Long '_____________________________________________________________________________________________________________ 'png_byte png_get_header_ver (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_header_ver Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) As Byte '_____________________________________________________________________________________________________________ 'png_byte png_get_header_version (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_header_version Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) As Byte '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_hIST (png_structp png_ptr, png_infop info_ptr, png_uint_16p *hist); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_hIST Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef hist As Integer) As Long '_____________________________________________________________________________________________________________ '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); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_iCCP Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef Name As String, ByRef compression_type As Long, ByRef profile As String, ByRef proflen As Long) As Long '_____________________________________________________________________________________________________________ '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_type, int *compression_type, int *filter_type); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_IHDR Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef Width As Long, ByRef Height As Long, ByRef bit_depth As PNG_COLOR_DEPTHS, ByRef color_type As PNG_COLOR_TYPES, ByRef interlace_type As PNG_INTERLACES, ByRef compression_type As PNG_COMPRESSION_TYPES, ByRef filter_type As PNG_FILTER_TYPES) As Long '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_image_height (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_image_height Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) As Long '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_image_width (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_image_width Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) As Long '_____________________________________________________________________________________________________________ 'png_byte png_get_interlace_type (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_interlace_type Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) As Byte '_____________________________________________________________________________________________________________ 'png_voidp png_get_io_ptr (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_io_ptr Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) As Long '_____________________________________________________________________________________________________________ 'png_byte png_get_libpng_ver (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_libpng_ver Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) As String '_____________________________________________________________________________________________________________ 'png_voidp png_get_mem_ptr (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_mem_ptr Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) As Long '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_oFFs (png_structp png_ptr, png_infop info_ptr, png_uint_32 *offset_x, png_uint_32 *offset_y, int *unit_type); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_oFFs Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef offset_x As Long, ByRef offset_y As Long, ByRef unit_type As Long) As Long '_____________________________________________________________________________________________________________ '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); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_pCAL Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByVal purpose As String, ByRef XO As Long, ByRef X1 As Long, ByRef nType As Long, ByRef nparams As Long, ByVal units As String, ByRef params As String) As Long '_____________________________________________________________________________________________________________ '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); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_pHYs Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef res_x As Long, ByRef res_y As Long, ByRef unit_type As Long) As Long '_____________________________________________________________________________________________________________ 'float png_get_pixel_aspect_ratio (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_pixel_aspect_ratio Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) As Single '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_pixels_per_meter (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_pixels_per_meter Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) As Long '_____________________________________________________________________________________________________________ 'png_voidp png_get_progressive_ptr (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_progressive_ptr Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) As Long '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_PLTE (png_structp png_ptr, png_infop info_ptr, png_colorp *palette, int *num_palette); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_PLTE Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef Palette As png_color, ByRef num_palette As Long) As Long '_____________________________________________________________________________________________________________ 'png_byte png_get_rgb_to_gray_status (png_structp png_ptr) 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_rgb_to_gray_status Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) As Byte '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_rowbytes (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_rowbytes Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) As Long 'This returns a LONG pointer to an ARRAY OF BYTE ARRAYS (multi-dimentional array) representing the pixel data 'for each row in the image. '_____________________________________________________________________________________________________________ 'png_bytepp png_get_rows (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_rows Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) As Long '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_sBIT (png_structp png_ptr, png_infop info_ptr, png_color_8p *sig_bit); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_sBIT Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef sig_bit As png_color_8) As Long 'This returns a pointer to a BYTE ARRAY that represents the signature bytes of the file '_____________________________________________________________________________________________________________ 'png_bytep png_get_signature (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_signature Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) As Long '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_sPLT (png_structp png_ptr, png_infop info_ptr, png_sPLT_tp *splt_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_sPLT Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef splt_ptr As png_sPLT_t) As Long '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_sRGB (png_structp png_ptr, png_infop info_ptr, int *intent); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_sRGB Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef intent As Long) As Long '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_text (png_structp png_ptr, png_infop info_ptr, png_textp *text_ptr, int *num_text); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_text Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef text_ptr As png_text, ByRef num_text As Long) As Long '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_tIME (png_structp png_ptr, png_infop info_ptr, png_timep *mod_time); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_tIME Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef mod_time As png_time) As Long '_____________________________________________________________________________________________________________ '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); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_tRNS Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef trans As Byte, ByRef num_trans As Long, ByRef trans_values As png_color_16) As Long '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_unknown_chunks (png_structp png_ptr, png_infop info_ptr, png_unknown_chunkpp unknowns); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_unknown_chunks Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef unknowns As png_unknown_chunk) As Long '_____________________________________________________________________________________________________________ 'png_voidp png_get_user_chunk_ptr (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_user_chunk_ptr Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) As Long '_____________________________________________________________________________________________________________ 'png_voidp png_get_user_transform_ptr (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_user_transform_ptr Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) As Long '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_valid (png_structp png_ptr, png_infop info_ptr, png_uint_32 flag); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_valid Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByVal flag As Long) As Long '_____________________________________________________________________________________________________________ 'png_int_32 png_get_x_offset_microns (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_x_offset_microns Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) As Long '_____________________________________________________________________________________________________________ 'png_int_32 png_get_x_offset_pixels (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_x_offset_pixels Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) As Long '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_x_pixels_per_meter (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_x_pixels_per_meter Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) As Long '_____________________________________________________________________________________________________________ 'png_int_32 png_get_y_offset_microns (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_y_offset_microns Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) As Long '_____________________________________________________________________________________________________________ 'png_int_32 png_get_y_offset_pixels (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_y_offset_pixels Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) As Long '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_y_pixels_per_meter (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_y_pixels_per_meter Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) As Long '_____________________________________________________________________________________________________________ 'png_uint_32 png_get_compression_buffer_size (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_get_compression_buffer_size Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) As Long '_____________________________________________________________________________________________________________ 'void png_info_init (png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_info_init Lib "LIBPNG_VB.DLL" (ByRef info_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_init_io (png_structp png_ptr, FILE *fp); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_init_io Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal FilePointer As Long) '_____________________________________________________________________________________________________________ 'png_voidp png_malloc (png_structp png_ptr, png_uint_32 size); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_malloc Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal Size As Long) As Long '_____________________________________________________________________________________________________________ 'png_voidp png_malloc_default(png_structp png_ptr, png_uint_32 size); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_malloc_default Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal Size As Long) As Long '_____________________________________________________________________________________________________________ 'voidp png_memcpy (png_voidp s1, png_voidp s2, png_size_t size); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_memcpy Lib "LIBPNG_VB.DLL" (ByRef S1 As Any, ByRef S2 As Any, ByVal Size As Long) As Long '_____________________________________________________________________________________________________________ 'png_voidp png_memcpy_check (png_structp png_ptr, png_voidp s1, png_voidp s2, png_uint_32 size); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_memcpy_check Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef S1 As Any, ByRef S2 As Any, ByVal Size As Long) As Long '_____________________________________________________________________________________________________________ 'voidp png_memset (png_voidp s1, int value, png_size_t size); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_memset Lib "LIBPNG_VB.DLL" (ByRef S1 As Any, ByVal Value As Long, ByVal Size As Long) As Long '_____________________________________________________________________________________________________________ 'png_voidp png_memset_check (png_structp png_ptr, png_voidp s1, int value, png_uint_32 size); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_memset_check Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef S1 As Any, ByVal Value As Long, ByVal Size As Long) As Long '_____________________________________________________________________________________________________________ 'void png_permit_empty_plte (png_structp png_ptr, int empty_plte_permitted); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_permit_empty_plte Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal empty_plte_permitted As Long) '_____________________________________________________________________________________________________________ 'void png_process_data (png_structp png_ptr, png_infop info_ptr, png_bytep buffer, png_size_t buffer_size); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_process_data Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef Buffer As Byte, ByVal buffer_size As Long) '_____________________________________________________________________________________________________________ 'void png_progressive_combine_row (png_structp png_ptr, png_bytep old_row, png_bytep new_row); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_progressive_combine_row Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef old_row As Byte, ByRef new_row As Byte) '_____________________________________________________________________________________________________________ 'void png_read_destroy (png_structp png_ptr, png_infop info_ptr, png_infop end_info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_read_destroy Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef end_info_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_read_end (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_read_end Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) ' IMPORTANT: The "image" parameter is a pointer to an ARRAY OF BYTE ARRAYS (multi-dimentional array) ( png_bytep row_pointers[height] ) '_____________________________________________________________________________________________________________ 'void png_read_image (png_structp png_ptr, png_bytepp image); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_read_image Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef image As Byte) '_____________________________________________________________________________________________________________ 'DEPRECATED: void png_read_init (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_read_init Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ 'DEPRECATED: void png_read_init_2 (png_structp png_ptr, png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t png_info_size); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_read_init_2 Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal user_png_ver As String, ByVal png_struct_size As Long, ByVal png_info_size As Long) '_____________________________________________________________________________________________________________ 'void png_read_info (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_read_info Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) ' NOTE: The final parameter of this call is not yet used. Someday it might point to transformation parameters ' required by some future input transform. '_____________________________________________________________________________________________________________ 'void png_read_png (png_structp png_ptr, png_infop info_ptr, int transforms, png_voidp params); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_read_png Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByVal transforms As Long, ByVal Reserved As Long) 'ByRef params As Any) '_____________________________________________________________________________________________________________ 'void png_read_row (png_structp png_ptr, png_bytep row, png_bytep display_row); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_read_row Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef row As Byte, ByRef display_row As Byte) ' IMPORTANT: The "row" and "display_row" parameters are each an ARRAY OF BYTE ARRAYS (multi-dimentional array), ' each byte array in the array of byte arrays representing a row '_____________________________________________________________________________________________________________ 'void png_read_rows (png_structp png_ptr, png_bytepp row, png_bytepp display_row, png_uint_32 num_rows); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_read_rows Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef row As Byte, ByRef display_row As Byte, ByVal num_rows As Long) '_____________________________________________________________________________________________________________ 'void png_read_update_info (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_read_update_info Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_set_background (png_structp png_ptr, png_color_16p background_color, int background_gamma_code, int need_expand, double background_gamma); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_background Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef background_color As png_color_16, ByVal background_gamma_code As Long, ByVal need_expand As Long, ByVal background_gamma As Double) '_____________________________________________________________________________________________________________ 'void png_set_bgr (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_bgr Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_set_bKGD (png_structp png_ptr, png_infop info_ptr, png_color_16p background); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_bKGD Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef background As png_color_16) '_____________________________________________________________________________________________________________ '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); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_cHRM Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByVal white_x As Double, ByVal white_y As Double, ByVal red_x As Double, ByVal red_y As Double, ByVal green_x As Double, ByVal green_y As Double, ByVal blue_x As Double, ByVal blue_y As Double) '_____________________________________________________________________________________________________________ 'void png_set_cHRM_fixed (png_structp png_ptr, png_infop info_ptr, png_uint_32 white_x, png_uint_32 white_y, png_uint_32 red_x, png_uint_32 red_y, png_uint_32 green_x, png_uint_32 green_y, png_uint_32 blue_x, png_uint_32 blue_y); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_cHRM_fixed Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByVal white_x As Long, ByVal white_y As Long, ByVal red_x As Long, ByVal red_y As Long, ByVal green_x As Long, ByVal green_y As Long, ByVal blue_x As Long, ByVal blue_y As Long) '_____________________________________________________________________________________________________________ 'void png_set_compression_level (png_structp png_ptr, int level); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_compression_level Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal Level As Long) '_____________________________________________________________________________________________________________ 'void png_set_compression_mem_level (png_structp png_ptr, int mem_level); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_compression_mem_level Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal mem_level As Long) '_____________________________________________________________________________________________________________ 'void png_set_compression_method (png_structp png_ptr, int method); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_compression_method Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal method As Long) '_____________________________________________________________________________________________________________ 'void png_set_compression_strategy (png_structp png_ptr, int strategy); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_compression_strategy Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal strategy As Long) '_____________________________________________________________________________________________________________ 'void png_set_compression_window_bits (png_structp png_ptr, int window_bits); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_compression_window_bits Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal window_bits As Long) '_____________________________________________________________________________________________________________ 'void png_set_crc_action (png_structp png_ptr, int crit_action, int ancil_action); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_crc_action Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal crit_action As Long, ByVal ancil_action As Long) '_____________________________________________________________________________________________________________ 'void png_set_dither (png_structp png_ptr, png_colorp palette, int num_palette, int maximum_colors, png_uint_16p histogram, int full_dither); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_dither Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef Palette As png_color, ByVal num_palette As Long, ByVal maximum_colors As Long, ByRef histogram As Integer, ByVal full_dither As Long) '_____________________________________________________________________________________________________________ 'void png_set_error_fn (png_structp png_ptr, png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_error_fn Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal error_ptr As Long, ByVal error_fcn As Long, ByVal warning_fcn As Long) '_____________________________________________________________________________________________________________ 'void png_set_expand (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_expand Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_set_filler (png_structp png_ptr, png_uint_32 filler, int flags); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_filler Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal filler As Long, ByVal Flags As Long) '_____________________________________________________________________________________________________________ 'void png_set_filter (png_structp png_ptr, int method, int filters); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_filter Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal method As Long, ByVal filters As Long) '_____________________________________________________________________________________________________________ 'void png_set_filter_heuristics (png_structp png_ptr, int heuristic_method, int num_weights, png_doublep filter_weights, png_doublep filter_costs); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_filter_heuristics Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal heuristic_method As Long, ByVal num_weights As Long, ByRef filter_weights As Double, ByRef filter_costs As Double) '_____________________________________________________________________________________________________________ 'void png_set_flush (png_structp png_ptr, int nrows); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_flush Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal nrows As Long) '_____________________________________________________________________________________________________________ 'void png_set_gamma (png_structp png_ptr, double screen_gamma, double default_file_gamma); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_gamma Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal screen_gamma As Double, ByVal default_file_gamma As Double) '_____________________________________________________________________________________________________________ 'void png_set_gAMA (png_structp png_ptr, png_infop info_ptr, double file_gamma); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_gAMA Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByVal file_gamma As Double) '_____________________________________________________________________________________________________________ 'void png_set_gAMA_fixed (png_structp png_ptr, png_infop info_ptr, png_uint_32 file_gamma); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_gAMA_fixed Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByVal file_gamma As Long) '_____________________________________________________________________________________________________________ 'void png_set_gray_1_2_4_to_8(png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_gray_1_2_4_to_8 Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_set_gray_to_rgb (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_gray_to_rgb Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_set_hIST (png_structp png_ptr, png_infop info_ptr, png_uint_16p hist); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_hIST Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef hist As Integer) '_____________________________________________________________________________________________________________ '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); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_iCCP Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByVal Name As String, ByVal compression_type As Long, ByVal profile As String, ByVal proflen As Long) '_____________________________________________________________________________________________________________ 'int png_set_interlace_handling (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_set_interlace_handling Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) As Long '_____________________________________________________________________________________________________________ 'void png_set_invalid (png_structp png_ptr, png_infop info_ptr, int mask); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_invalid Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal mask As Long) '_____________________________________________________________________________________________________________ 'void png_set_invert_alpha (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_invert_alpha Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_set_invert_mono (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_invert_mono Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ '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_type, int compression_type, int filter_type); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_IHDR Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByVal Width As Long, ByVal Height As Long, ByVal color_type As Long, ByVal interlace_type As Long, compression_type As Long, ByVal filter_type As Long) 'keep = 0 - do not keep ' 1 - keep only if safe-to-copy ' 2 - keep even if unsafe-to-copy 'chunk_list = list of chunks affected (a byte string, five bytes per chunk, NULL or ' ' if num_chunks is 0) 'num_chunks = number of chunks affected. If 0, all unknown chunks are affected '_____________________________________________________________________________________________________________ 'void png_set_keep_unknown_chunks (png_structp png_ptr, int keep, png_bytep chunk_list, int num_chunks); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_keep_unknown_chunks Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal keep As Long, ByRef chunk_list As Byte, ByVal num_chunks As Long) '_____________________________________________________________________________________________________________ 'void png_set_mem_fn(png_structp png_ptr, png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_mem_fn Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal mem_ptr As Long, ByVal malloc_fcn As Long, ByVal free_fcn As Long) '_____________________________________________________________________________________________________________ 'void png_set_oFFs (png_structp png_ptr, png_infop info_ptr, png_uint_32 offset_x, png_uint_32 offset_y, int unit_type); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_oFFs Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByVal offset_x As Long, ByVal offset_y As Long, ByVal unit_type As Long) '_____________________________________________________________________________________________________________ 'void png_set_packing (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_packing Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_set_packswap (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_packswap Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_set_palette_to_rgb(png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_palette_to_rgb Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ '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); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_pCAL Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByVal purpose As String, ByVal X0 As Long, ByVal X1 As Long, ByVal type_ As Long, ByVal nparams As Long, ByVal units As String, ByRef params As String) '_____________________________________________________________________________________________________________ '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); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_pHYs Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByVal res_x As Long, ByVal res_y As Long, ByVal unit_type As Long) '_____________________________________________________________________________________________________________ '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); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_progressive_read_fn Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal progressive_ptr As Long, ByVal info_fcn As Long, ByVal row_fcn As Long, ByVal end_fcn As Long) '_____________________________________________________________________________________________________________ 'void png_set_PLTE (png_structp png_ptr, png_infop info_ptr, png_colorp palette, int num_palette); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_PLTE Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef Palette As png_color, ByVal num_palette As Long) '_____________________________________________________________________________________________________________ 'void png_set_read_fn (png_structp png_ptr, png_voidp io_ptr, png_rw_ptr read_data_fn); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_read_fn Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal io_ptr As Long, ByVal read_data_fcn As Long) '_____________________________________________________________________________________________________________ 'void png_set_read_status_fn (png_structp png_ptr, png_read_status_ptr read_row_fn); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_read_status_fn Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal read_row_fcn As Long) '_____________________________________________________________________________________________________________ 'void png_set_read_user_transform_fn (png_structp png_ptr, png_user_transform_ptr read_user_transform_fn); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_read_user_transform_fn Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal read_user_transform_fcn As Long) '_____________________________________________________________________________________________________________ 'void png_set_rgb_to_gray (png_structp png_ptr, int error_action, double red, double green); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_rgb_to_gray Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal error_action As Long, ByVal red As Double, ByVal green As Double) '_____________________________________________________________________________________________________________ 'void png_set_rgb_to_gray_fixed (png_structp png_ptr, int error_action png_fixed_point red, png_fixed_point green); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_rgb_to_gray_fixed Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal error_action As Long, ByVal red As Long, ByVal green As Long) ' NOTE: The "row_pointers" parameter is an ARRAY OF BYTE ARRAYS (multi-dimentional array) '_____________________________________________________________________________________________________________ 'void png_set_rows (png_structp png_ptr, png_infop info_ptr, png_bytepp row_pointers); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_rows Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef row_pointers As Byte) '_____________________________________________________________________________________________________________ 'void png_set_sBIT (png_structp png_ptr, png_infop info_ptr, png_color_8p sig_bit); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_sBIT Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef sig_bit As png_color_8) '_____________________________________________________________________________________________________________ 'void png_set_sCAL (png_structp png_ptr, png_infop info_ptr, png_charp unit, double width, double height); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_sCAL Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByVal unit As String, ByVal Width As Double, ByVal Height As Double) '_____________________________________________________________________________________________________________ 'void png_set_shift (png_structp png_ptr, png_color_8p true_bits); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_shift Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef true_bits As png_color_8) '_____________________________________________________________________________________________________________ 'void png_set_sig_bytes (png_structp png_ptr, int num_bytes); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_sig_bytes Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal num_bytes As Long) '_____________________________________________________________________________________________________________ 'void png_set_sPLT (png_structp png_ptr, png_infop info_ptr, png_sPLT_tp splt_ptr, int num_spalettes); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_sPLT Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef split_ptr As png_sPLT_t, ByVal num_spalettes As Long) '_____________________________________________________________________________________________________________ 'void png_set_sRGB (png_structp png_ptr, png_infop info_ptr, int intent); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_sRGB Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByVal intent As Long) '_____________________________________________________________________________________________________________ 'void png_set_sRGB_gAMA_and_cHRM (png_structp png_ptr, png_infop info_ptr, int intent); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_sRGB_gAMA_and_cHRM Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByVal intent As Long) '_____________________________________________________________________________________________________________ 'void png_set_strip_16 (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_strip_16 Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_set_strip_alpha (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_strip_alpha Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_set_swap (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_swap Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_set_swap_alpha (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_swap_alpha Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_set_text (png_structp png_ptr, png_infop info_ptr, png_textp text_ptr, int num_text); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_text Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef text_ptr As png_text, ByVal num_text As Long) '_____________________________________________________________________________________________________________ 'void png_set_tIME (png_structp png_ptr, png_infop info_ptr, png_timep mod_time); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_tIME Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef mod_time As png_time) '_____________________________________________________________________________________________________________ 'void png_set_tRNS (png_structp png_ptr, png_infop info_ptr, png_bytep trans, int num_trans, png_color_16p trans_values); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_tRNS Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef trans As Byte, ByVal num_tras As Long, ByRef trans_values As png_color_16) '_____________________________________________________________________________________________________________ 'void png_set_tRNS_to_alpha(png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_tRNS_to_alpha Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ 'png_uint_32 png_set_unknown_chunks (png_structp png_ptr, png_infop info_ptr, png_unknown_chunkp unknowns, int num, int location); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_set_unknown_chunks Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByRef unknowns As png_unknown_chunk, ByVal num As Long, ByVal Location As Long) As Long '_____________________________________________________________________________________________________________ 'void png_set_unknown_chunk_location(png_structp png_ptr, png_infop info_ptr, int chunk, int location); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_unknown_chunk_location Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByVal chunk As Long, ByVal Location As Long) '_____________________________________________________________________________________________________________ 'void png_set_read_user_chunk_fn (png_structp png_ptr, png_voidp user_chunk_ptr, png_user_chunk_ptr read_user_chunk_fn); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_read_user_chunk_fn Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal user_chunk_ptr As Long, ByVal read_user_chunk_fcn As Long) '_____________________________________________________________________________________________________________ 'void png_set_user_transform_info (png_structp png_ptr, png_voidp user_transform_ptr, int user_transform_depth, int user_transform_channels); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_user_transform_info Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal user_transform_ptr As Long, ByVal user_transform_depth As Long, ByVal user_transform_channels As Long) '_____________________________________________________________________________________________________________ '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); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_write_fn Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal io_ptr As Long, ByVal write_data_fcn As Long, ByVal output_flush_fcn As Long) '_____________________________________________________________________________________________________________ 'void png_set_write_status_fn (png_structp png_ptr, png_write_status_ptr write_row_fn); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_write_status_fn Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal write_row_fcn As Long) '_____________________________________________________________________________________________________________ 'void png_set_write_user_transform_fn (png_structp png_ptr, png_user_transform_ptr write_user_transform_fn); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_write_user_transform_fn Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal write_user_transform_fcn As Long) '_____________________________________________________________________________________________________________ 'void png_set_compression_buffer_size(png_structp png_ptr, png_uint_32 size); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_set_compression_buffer_size Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal Size As Long) '_____________________________________________________________________________________________________________ 'int png_sig_cmp (png_bytep sig, png_size_t start, png_size_t num_to_check); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Function png_sig_cmp Lib "LIBPNG_VB.DLL" (ByRef sig As Byte, ByVal start As Long, ByVal num_to_check As Long) As Long '_____________________________________________________________________________________________________________ 'void png_start_read_image (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_start_read_image Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_warning (png_structp png_ptr, png_const_charp message); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_warning Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal Message As String) '_____________________________________________________________________________________________________________ 'void png_write_chunk (png_structp png_ptr, png_bytep chunk_name, png_bytep data, png_size_t length); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_write_chunk Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef chunk_name As Byte, ByRef Data As Byte, ByVal Length As Long) '_____________________________________________________________________________________________________________ 'void png_write_chunk_data (png_structp png_ptr, png_bytep data, png_size_t length); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_write_chunk_data Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef Data As Byte, ByVal Length As Long) '_____________________________________________________________________________________________________________ 'void png_write_chunk_end (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_write_chunk_end Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_write_chunk_start (png_structp png_ptr, png_bytep chunk_name, png_uint_32 length); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_write_chunk_start Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef chunk_name As Byte, ByVal Length As Long) '_____________________________________________________________________________________________________________ 'void png_write_destroy (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_write_destroy Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_write_destroy_info (png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_write_destroy_info Lib "LIBPNG_VB.DLL" (ByRef info_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_write_end (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_write_end Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_write_flush (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_write_flush Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) ' NOTE: The "image" parameter is an ARRAY OF BYTE ARRAYS (multi-dimentional array) '_____________________________________________________________________________________________________________ 'void png_write_image (png_structp png_ptr, png_bytepp image); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_write_image Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef image As Byte) '_____________________________________________________________________________________________________________ 'DEPRECATED: void png_write_init (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_write_init Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any) '_____________________________________________________________________________________________________________ 'DEPRECATED: void png_write_init_2 (png_structp png_ptr, png_const_charp user_png_ver, png_size_t png_struct_size, png_size_t png_info_size); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_write_init_2 Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByVal user_png_ver As String, ByVal png_struct_size As Long, ByVal png_info_size As Long) '_____________________________________________________________________________________________________________ 'void png_write_info (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_write_info Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_write_info_before_PLTE (png_structp png_ptr, png_infop info_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_write_info_before_PLTE Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any) '_____________________________________________________________________________________________________________ 'void png_write_png (png_structp png_ptr, png_infop info_ptr, int transforms, png_voidp params); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_write_png Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef info_ptr As Any, ByVal transforms As Long, ByRef params As Long) '_____________________________________________________________________________________________________________ 'void png_write_row (png_structp png_ptr, png_bytep row); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_write_row Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef row As Byte) ' NOTE: The "row" parameter is an ARRAY OF BYTE ARRAYS (multi-dimentional array) '_____________________________________________________________________________________________________________ 'void png_write_rows (png_structp png_ptr, png_bytepp row, png_uint_32 num_rows); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Declare Sub png_write_rows Lib "LIBPNG_VB.DLL" (ByRef png_ptr As Any, ByRef row As Byte, ByVal num_rows As Long) 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ' USER DEFINED FUNCTION DEFINITIONS USED FOR DLL CALLBACKS 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ' Set this function by calling the "png_set_error_fn" routine, like this: ' Call png_set_error_fn(png_ptr, error_ptr, AddressOf user_error_callback, AddressOf user_warning_callback) '_____________________________________________________________________________________________________________ 'void user_error_fn (png_structp png_ptr, png_const_charp error_msg); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Sub user_error_callback(ByVal png_ptr As Long, ByVal error_msg As String) strLastError_Desc = error_msg End Sub ' Set this function by calling the "png_set_error_fn" routine, like this: ' Call png_set_error_fn(png_ptr, error_ptr, AddressOf user_error_callback, AddressOf user_warning_callback) '_____________________________________________________________________________________________________________ 'void user_warning_fn (png_structp png_ptr, png_const_charp warning_msg); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Sub user_warning_callback(ByVal png_ptr As Long, ByVal warning_msg As String) strLastWarning_Desc = warning_msg End Sub ' Set this function by calling the "png_set_mem_fn" routine, like this: ' Call png_set_mem_fn(ByVal png_ptr, mem_ptr, AddressOf user_malloc_callback, AddressOf user_free_callback) ' The malloc_fn() can return NULL in case of failure. '_____________________________________________________________________________________________________________ 'png_voidp malloc_fn (png_structp png_ptr, png_uint_32 size); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Function user_malloc_callback(ByVal png_ptr As Long, ByVal Size As Long) As Long End Function ' Set this function by calling the "png_set_mem_fn" routine, like this: ' Call png_set_mem_fn(ByVal png_ptr, mem_ptr, AddressOf user_malloc_callback, AddressOf user_free_callback) '_____________________________________________________________________________________________________________ 'void free_fn (png_structp png_ptr, png_voidp ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Sub user_free_callback(ByVal png_ptr As Long, ByVal ptr As Long) End Sub ' Set this function by calling the "png_set_read_fn" routine, like this: ' Call png_set_read_fn(ByVal png_ptr, io_ptr, AddressOf user_read_data_callback) '_____________________________________________________________________________________________________________ 'void user_read_data (png_structp png_ptr, png_bytep data, png_uint_32 length); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Sub user_read_data_callback(ByVal png_ptr As Long, ByRef Data() As Byte, ByVal Length As Long) End Sub ' Set this function by calling the "png_set_write_fn" routine, like this: ' Call png_set_write_fn(ByVal png_ptr, io_ptr, AddressOf user_write_data_callback, AddressOf user_flush_data_callback) '_____________________________________________________________________________________________________________ 'void user_write_data (png_structp png_ptr, png_bytep data, png_uint_32 length); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Sub user_write_data_callback(ByVal png_ptr As Long, ByRef Data() As Byte, ByVal Length As Long) End Sub ' Set this function by calling the "png_set_write_fn" routine, like this: ' Call png_set_write_fn(ByVal png_ptr, io_ptr, AddressOf user_write_data_callback, AddressOf user_flush_data_callback) '_____________________________________________________________________________________________________________ 'void user_flush_data (png_structp png_ptr); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Sub user_flush_data_callback(ByVal png_ptr As Long) End Sub ' Set this function by calling the "png_set_progressive_read_fn" routine, like this: ' Call png_set_progressive_read_fn(ByVal png_ptr, progressive_ptr, AddressOf user_info_callback, AddressOf user_row_callback, AddressOf user_end_callback) ' ' This function is called (as set by png_set_progressive_read_fn above) when enough data has been ' supplied so all of the header has been read. '_____________________________________________________________________________________________________________ 'void info_callback(png_structp png_ptr, png_infop info) 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Sub user_info_callback(ByVal png_ptr As Long, ByVal info As Long) ' ByRef info As png_info) ' Do any setup here, including setting any of the transformations mentioned in the Reading PNG files section. ' For now, you MUST call either png_start_read_image() or png_read_update_info() after all the transformations ' are set (even if you don't set any). You may start getting rows before png_process_data() returns, so this ' is your last chance to prepare for that. End Sub ' Set this function by calling the "png_set_progressive_read_fn" routine, like this: ' Call png_set_progressive_read_fn(ByVal png_ptr, progressive_ptr, AddressOf user_info_callback, AddressOf user_row_callback, AddressOf user_end_callback) ' ' This function is called when each row of image data is complete '_____________________________________________________________________________________________________________ 'void row_callback (png_structp png_ptr, png_bytep new_row, png_uint_32 row_num, int pass) 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Sub user_row_callback(ByVal png_ptr As Long, ByRef new_row() As Byte, ByVal row_num As Long, ByVal pass As Long) ' If the image is interlaced, and you turned on the interlace handler, this function will be called for ' every row in every pass. Some of these rows will not be changed from the previous pass. When the row is ' not changed, the new_row variable will be NULL. The rows and passes are called in order, so you don't ' really need the row_num and pass, but I'm supplying them because it may make your life easier. ' For the non-NULL rows of interlaced images, you must call png_progressive_combine_row() passing in the row ' and the old row. You can call this function for NULL rows (it will just return) and for non-interlaced ' images (it just does the memcpy for you) if it will make the code easier. Thus, you can just do this for ' all cases: 'png_progressive_combine_row (png_ptr, old_row, new_row); ' Where old_row is what was displayed for previously for the row. Note that the first pass (pass == 0, ' really) will completely cover the old row, so the rows do not have to be initialized. After the first pass ' (and only for interlaced images), you will have to pass the current row, and the function will combine the ' old row and the new row. End Sub ' Set this function by calling the "png_set_progressive_read_fn" routine, like this: ' Call png_set_progressive_read_fn(ByVal png_ptr, progressive_ptr, AddressOf user_info_callback, AddressOf user_row_callback, AddressOf user_end_callback) '_____________________________________________________________________________________________________________ 'void end_callback(png_structp png_ptr, png_infop info) 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Sub user_end_callback(ByVal png_ptr As Long, ByVal info As Long) ' ByRef info As png_info) ' This function is called after the whole image has been read, including any chunks after the image (up ' to and including the IEND). You will usually have the same info chunk as you had in the header, although ' some data may have been added to the comments and time fields. ' Most people won't do much here, perhaps setting a flag that marks the image as finished. End Sub ' This is set by calling the "png_set_read_user_chunk_fn" routine, like this: ' Call png_set_read_user_chunk_fn(ByVal png_ptr, user_chunk_ptr, AddressOf user_read_chunk_callback) '_____________________________________________________________________________________________________________ 'read_chunk_callback (png_ptr ptr, png_unknown_chunkp chunk); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Sub user_read_chunk_callback(ByVal ptr As Long, ByRef chunk As png_unknown_chunk) ' The unknown chunk structure contains your chunk data: 'png_byte name[5]; 'png_byte *data; 'png_size_t size; ' Note that libpng has already taken care of the CRC handling ' put your code here. Return one of the following: 'return (-n); // chunk had an error 'return (0) ; // did not recognize 'return (n) ; // success End Sub ' This is set by calling the "png_set_read_status_fn" routine, like this: ' Call png_set_read_status_fn(ByVal png_ptr, AddressOf user_read_row_callback) '_____________________________________________________________________________________________________________ 'void read_row_callback (png_ptr ptr, png_uint_32 row, int pass); 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Sub user_read_row_callback(ByVal ptr As Long, ByVal row As Long, ByVal pass As Long) ' This is a callback function that will be called after each row has been read, which ' you can use to control a progress meter or the like. It's demonstrated in pngtest.c. ' // PUT YOUR CODE HERE End Sub ' This is set by calling the "png_set_read_user_transform_fn" routine, like this: ' Call png_set_read_user_transform_fn(ByVal png_ptr, AddressOf user_read_transform_callback) '_____________________________________________________________________________________________________________ 'void read_transform_fn (png_ptr ptr, row_info_ptr row_info, png_bytep data) 'ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ Public Sub user_read_transform_callback(ByVal ptr As Long, ByVal row_info As Long, ByRef Data() As Byte) End Sub