struct png_info_def
{ /* The following are necessary for every PNG file */
png_uint_32 width; /* width of image in pixels (from IHDR) */
png_uint_32 height; /* height of image in pixels (from IHDR) */
png_uint_32 valid; /* valid chunk data (see PNG_INFO_ below) */
size_t rowbytes; /* bytes needed to hold an untransformed row */
png_colorp palette; /* array of color values (valid & PNG_INFO_PLTE) */
png_uint_16 num_palette; /* number of color entries in "palette" (PLTE) */
png_uint_16 num_trans; /* number of transparent palette color (tRNS) */
png_byte bit_depth; /* 1, 2, 4, 8, or 16 bits/channel (from IHDR) */
png_byte color_type; /* see PNG_COLOR_TYPE_ below (from IHDR) */ /* The following three should have been named *_method not *_type */
png_byte compression_type; /* must be PNG_COMPRESSION_TYPE_BASE (IHDR) */
png_byte filter_type; /* must be PNG_FILTER_TYPE_BASE (from IHDR) */
png_byte interlace_type; /* One of PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */
/* The following are set by png_set_IHDR, called from the application on *write,buttheareneveractuallyusedbythewritecode.
*/
png_byte channels; /* number of data channels per pixel (1, 2, 3, 4) */
png_byte pixel_depth; /* number of bits per pixel */
png_byte spare_byte; /* to align the data, and for future use */
#ifdef PNG_READ_SUPPORTED /* This is never set during write */
png_byte signature[8]; /* magic bytes read by libpng from start of file */ #endif
/* The rest of the data is optional. If you are reading, check the *validfieldtoseeiftheinformationinthesearevalid.Ifyou *arewriting,setthevalidfieldtothosechunksyouwantwritten, *andinitializetheappropriatefieldsbelow.
*/
#ifdef PNG_TEXT_SUPPORTED /* The tEXt, and zTXt chunks contain human-readable textual data in *uncompressed,compressed,andoptionallycompressedforms,respectively. *Thedatain"text"isanarrayofpointerstouncompressed, *null-terminatedCstrings.Eachchunkhasakeywordthatdescribesthe *textualdatacontainedinthatchunk.Keywordsarenotrequiredtobe *unique,andthetextstringmaybeempty.Anynumberoftextchunksmay *beinanimage.
*/ int num_text; /* number of comments read or comments to write */ int max_text; /* current size of text array */
png_textp text; /* array of comments read or comments to write */ #endif/* TEXT */
#ifdef PNG_tIME_SUPPORTED /* The tIME chunk holds the last time the displayed image data was *modified.Seethepng_timestructforthecontentsofthisstruct.
*/
png_time mod_time; #endif
#ifdef PNG_sBIT_SUPPORTED /* The sBIT chunk specifies the number of significant high-order bits *inthepixeldata.Valuesareintherange[1,bit_depth],andare *onlyspecifiedforthechannelsinthepixeldata.Thecontentsof *thelow-orderbitsisnotspecified.Dataisvalidif *(valid&PNG_INFO_sBIT)isnon-zero.
*/
png_color_8 sig_bit; /* significant bits in color channels */ #endif
#ifdefined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_EXPAND_SUPPORTED) || \ defined(PNG_READ_BACKGROUND_SUPPORTED) /* The tRNS chunk supplies transparency data for paletted images and *otherimagetypesthatdon'tneedafullalphachannel.Thereare *"num_trans"transparencyvaluesforapalettedimage,storedinthe *sameorderasthepalettecolors,startingfromindex0.Values *forthedataareintherange[0,255],rangingfromfullytransparent *tofullyopaque,respectively.Fornon-palettedimages,thereisa *singlecolorspecifiedthatshouldbetreatedasfullytransparent. *Dataisvalidif(valid&PNG_INFO_tRNS)isnon-zero.
*/
png_bytep trans_alpha; /* alpha values for paletted image */
png_color_16 trans_color; /* transparent color for non-palette image */ #endif
#ifdefined(PNG_bKGD_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) /* The bKGD chunk gives the suggested image background color if the *displayprogramdoesnothaveitsownbackgroundcolorandtheimage *isneedstocompositedontoabackgroundbeforedisplay.Thecolors *in"background"arenormallyinthesamecolorspace/depthasthe *pixeldata.Dataisvalidif(valid&PNG_INFO_bKGD)isnon-zero.
*/
png_color_16 background; #endif
#ifdef PNG_oFFs_SUPPORTED /* The oFFs chunk gives the offset in "offset_unit_type" units rightwards *anddownwardsfromthetop-leftcornerofthedisplay,page,orother *application-specificco-ordinatespace.SeethePNG_OFFSET_defines *belowfortheunittypes.Validif(valid&PNG_INFO_oFFs)non-zero.
*/
png_int_32 x_offset; /* x offset on page */
png_int_32 y_offset; /* y offset on page */
png_byte offset_unit_type; /* offset units type */ #endif
#ifdef PNG_pHYs_SUPPORTED /* The pHYs chunk gives the physical pixel density of the image for *displayorprintingin"phys_unit_type"units(seePNG_RESOLUTION_ *definesbelow).Dataisvalidif(valid&PNG_INFO_pHYs)isnon-zero.
*/
png_uint_32 x_pixels_per_unit; /* horizontal pixel density */
png_uint_32 y_pixels_per_unit; /* vertical pixel density */
png_byte phys_unit_type; /* resolution type (see PNG_RESOLUTION_ below) */ #endif
#ifdef PNG_hIST_SUPPORTED /* The hIST chunk contains the relative frequency or importance of the *variouspaletteentries,sothataviewercanintelligentlyselecta *reduced-colorpalette,ifrequired.Dataisanarrayof"num_palette" *valuesintherange[0,65535].Datavalidif(valid&PNG_INFO_hIST) *isnon-zero.
*/
png_uint_16p hist; #endif
#ifdef PNG_pCAL_SUPPORTED /* The pCAL chunk describes a transformation between the stored pixel *valuesandoriginalphysicaldatavaluesusedtocreatetheimage. *Theintegerrange[0,2^bit_depth-1]mapstothefloating-point *rangegivenby[pcal_X0,pcal_X1],andarefurthertransformedbya *(possiblynon-linear)transformationfunctiongivenby"pcal_type" *and"pcal_params"into"pcal_units".PleaseseethePNG_EQUATION_ *definesbelow,andthePNG-Group'sPNGextensionsdocumentfora *completedescriptionofthetransformationsandhowtheyshouldbe *implemented,andforadescriptionoftheASCIIparameterstrings. *Datavaluesarevalidif(valid&PNG_INFO_pCAL)non-zero.
*/
png_charp pcal_purpose; /* pCAL chunk description string */
png_int_32 pcal_X0; /* minimum value */
png_int_32 pcal_X1; /* maximum value */
png_charp pcal_units; /* Latin-1 string giving physical units */
png_charpp pcal_params; /* ASCII strings containing parameter values */
png_byte pcal_type; /* equation type (see PNG_EQUATION_ below) */
png_byte pcal_nparams; /* number of parameters given in pcal_params */ #endif
/* New members added in libpng-1.0.6 */
png_uint_32 free_me; /* flags items libpng is responsible for freeing */
#ifdef PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED /* Storage for unknown chunks that the library doesn't recognize. */
png_unknown_chunkp unknown_chunks;
/* The type of this field is limited by the type of *png_struct::user_chunk_cache_max,elseoverflowcanoccur.
*/ int unknown_chunks_num; #endif
#ifdef PNG_sPLT_SUPPORTED /* Data on sPLT chunks (there may be more than one). */
png_sPLT_tp splt_palettes; int splt_palettes_num; /* Match type returned by png_get API */ #endif
#ifdef PNG_sCAL_SUPPORTED /* The sCAL chunk describes the actual physical dimensions of the *subjectmatterofthegraphic.Thechunkcontainsaunitspecification *abytevalue,andtwoASCIIstringsrepresentingfloating-point *values.Thevaluesarewidthandheightcorrespondingtoonepixel *intheimage.Datavaluesarevalidif(valid&PNG_INFO_sCAL)is *non-zero.
*/
png_byte scal_unit; /* unit of physical scale */
png_charp scal_s_width; /* string containing height */
png_charp scal_s_height; /* string containing width */ #endif
#ifdef PNG_INFO_IMAGE_SUPPORTED /* Memory has been allocated if (valid & PNG_ALLOCATED_INFO_ROWS)
non-zero */ /* Data valid if (valid & PNG_INFO_IDAT) non-zero */
png_bytepp row_pointers; /* the image bits */ #endif
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.