⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 libmng_chunks.h

📁 奇趣公司比较新的qt/emd版本
💻 H
📖 第 1 页 / 共 3 页
字号:
/* ************************************************************************** *//* *             For conditions of distribution and use,                    * *//* *                see copyright notice in libmng.h                        * *//* ************************************************************************** *//* *                                                                        * *//* * project   : libmng                                                     * *//* * file      : libmng_chunks.h           copyright (c) 2000-2004 G.Juyn   * *//* * version   : 1.0.7                                                      * *//* *                                                                        * *//* * purpose   : Chunk structures (definition)                              * *//* *                                                                        * *//* * author    : G.Juyn                                                     * *//* *                                                                        * *//* * comment   : Definition of known chunk structures                       * *//* *                                                                        * *//* * changes   : 0.5.1 - 05/04/2000 - G.Juyn                                * *//* *             - put in some extra comments                               * *//* *             0.5.1 - 05/06/2000 - G.Juyn                                * *//* *             - fixed layout for sBIT, PPLT                              * *//* *             0.5.1 - 05/08/2000 - G.Juyn                                * *//* *             - changed write callback definition                        * *//* *             - changed strict-ANSI stuff                                * *//* *             0.5.1 - 05/11/2000 - G.Juyn                                * *//* *             - fixed layout for PPLT again (missed deltatype ?!?)       * *//* *                                                                        * *//* *             0.5.2 - 05/31/2000 - G.Juyn                                * *//* *             - removed useless definition (contributed by Tim Rowley)   * *//* *             0.5.2 - 06/03/2000 - G.Juyn                                * *//* *             - fixed makeup for Linux gcc compile                       * *//* *                                                                        * *//* *             0.9.2 - 08/05/2000 - G.Juyn                                * *//* *             - changed file-prefixes                                    * *//* *                                                                        * *//* *             0.9.3 - 08/26/2000 - G.Juyn                                * *//* *             - added MAGN chunk                                         * *//* *             0.9.3 - 09/10/2000 - G.Juyn                                * *//* *             - fixed DEFI behavior                                      * *//* *             0.9.3 - 10/16/2000 - G.Juyn                                * *//* *             - added JDAA chunk                                         * *//* *                                                                        * *//* *             1.0.5 - 08/19/2002 - G.Juyn                                * *//* *             - added HLAPI function to copy chunks                      * *//* *             1.0.5 - 09/14/2002 - G.Juyn                                * *//* *             - added event handling for dynamic MNG                     * *//* *             1.0.5 - 11/28/2002 - G.Juyn                                * *//* *             - fixed definition of iMethodX/Y for MAGN chunk            * *//* *                                                                        * *//* *             1.0.6 - 05/25/2003 - G.R-P                                 * *//* *               added MNG_SKIPCHUNK_cHNK footprint optimizations         * *//* *             1.0.6 - 07/29/2003 - G.R-P                                 * *//* *             - added conditionals around PAST chunk support             * *//* *                                                                        * *//* *             1.0.7 - 03/24/2004 - G.R-P                                 * *//* *             - added conditional around MNG_NO_DELTA_PNG support        * *//* *                                                                        * *//* *             1.0.9 - 12/05/2004 - G.Juyn                                * *//* *             - added conditional MNG_OPTIMIZE_CHUNKINITFREE             * *//* *             1.0.9 - 12/06/2004 - G.Juyn                                * *//* *             - added conditional MNG_OPTIMIZE_CHUNKREADER               * *//* *                                                                        * *//* ************************************************************************** */#if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)#pragma option -A                      /* force ANSI-C */#endif#ifndef _libmng_chunks_h_#define _libmng_chunks_h_/* ************************************************************************** */#ifdef MNG_SWAP_ENDIAN#define PNG_SIG 0x474e5089L#define JNG_SIG 0x474e4a8bL#define MNG_SIG 0x474e4d8aL#define POST_SIG 0x0a1a0a0dL#else#define PNG_SIG 0x89504e47L#define JNG_SIG 0x8b4a4e47L#define MNG_SIG 0x8a4d4e47L#define POST_SIG 0x0d0a1a0aL#endif/* ************************************************************************** */#ifdef MNG_OPTIMIZE_CHUNKREADERtypedef mng_retcode (*mng_f_specialfunc)  (mng_datap   pData,                                           mng_chunkp  pChunk,                                           mng_uint32* piRawlen,                                           mng_uint8p* ppRawdata);                                           typedef mng_retcode (*mng_c_specialfunc)  (mng_datap  pData,                                           mng_chunkp pChunk);#define MNG_FIELD_OPTIONAL    0x0001#define MNG_FIELD_TERMINATOR  0x0002#define MNG_FIELD_REPETITIVE  0x0004#define MNG_FIELD_DEFLATED    0x0008#define MNG_FIELD_IFIMGTYPES  0x01F0   /* image-type mask */#define MNG_FIELD_IFIMGTYPE0  0x0010#define MNG_FIELD_IFIMGTYPE2  0x0020#define MNG_FIELD_IFIMGTYPE3  0x0040#define MNG_FIELD_IFIMGTYPE4  0x0080#define MNG_FIELD_IFIMGTYPE6  0x0100#define MNG_FIELD_PUTIMGTYPE  0x0200#define MNG_FIELD_NOHIGHBIT   0x0400#define MNG_FIELD_GROUPMASK   0x7000#define MNG_FIELD_GROUP1      0x1000#define MNG_FIELD_GROUP2      0x2000#define MNG_FIELD_GROUP3      0x3000#define MNG_FIELD_GROUP4      0x4000#define MNG_FIELD_GROUP5      0x5000#define MNG_FIELD_GROUP6      0x6000#define MNG_FIELD_GROUP7      0x7000#define MNG_FIELD_INT         0x8000typedef struct {                       /* chunk-field descriptor */           mng_f_specialfunc pSpecialfunc;           mng_uint16        iFlags;           mng_uint16        iMinvalue;           mng_uint16        iMaxvalue;           mng_uint16        iLengthmin;           mng_uint16        iLengthmax;           mng_uint16        iOffsetchunk;           mng_uint16        iOffsetchunkind;           mng_uint16        iOffsetchunklen;        } mng_field_descriptor;typedef mng_field_descriptor * mng_field_descp;#define MNG_DESCR_GLOBAL      0x0001#define MNG_DESCR_EMPTY       0x0002#define MNG_DESCR_EMPTYEMBED  0x0006#define MNG_DESCR_EMPTYGLOBAL 0x000A#define MNG_DESCR_GenHDR      0x0001   /* IHDR/JHDR/BASI/DHDR */#define MNG_DESCR_JngHDR      0x0002   /* JHDR/DHDR */#define MNG_DESCR_MHDR        0x0004#define MNG_DESCR_IHDR        0x0008#define MNG_DESCR_JHDR        0x0010#define MNG_DESCR_DHDR        0x0020#define MNG_DESCR_LOOP        0x0040#define MNG_DESCR_PLTE        0x0080#define MNG_DESCR_SAVE        0x0100#define MNG_DESCR_NOIHDR      0x0001#define MNG_DESCR_NOJHDR      0x0002#define MNG_DESCR_NOBASI      0x0004#define MNG_DESCR_NODHDR      0x0008#define MNG_DESCR_NOIDAT      0x0010#define MNG_DESCR_NOJDAT      0x0020#define MNG_DESCR_NOJDAA      0x0040#define MNG_DESCR_NOPLTE      0x0080#define MNG_DESCR_NOJSEP      0x0100#define MNG_DESCR_NOMHDR      0x0200#define MNG_DESCR_NOTERM      0x0400#define MNG_DESCR_NOLOOP      0x0800#define MNG_DESCR_NOSAVE      0x1000typedef struct {                       /* chunk descriptor */           mng_imgtype       eImgtype;           mng_createobjtype eCreateobject;           mng_uint16        iObjsize;           mng_uint16        iOffsetempty;           mng_ptr           pObjcleanup;           mng_ptr           pObjprocess;           mng_c_specialfunc pSpecialfunc;           mng_field_descp   pFielddesc;           mng_uint16        iFielddesc;           mng_uint16        iAllowed;           mng_uint16        iMusthaves;           mng_uint16        iMustNOThaves;        } mng_chunk_descriptor;typedef mng_chunk_descriptor * mng_chunk_descp;#endif /* MNG_OPTIMIZE_CHUNKREADER *//* ************************************************************************** */typedef mng_retcode (*mng_createchunk)  (mng_datap   pData,                                         mng_chunkp  pHeader,                                         mng_chunkp* ppChunk);typedef mng_retcode (*mng_cleanupchunk) (mng_datap   pData,                                         mng_chunkp  pHeader);typedef mng_retcode (*mng_readchunk)    (mng_datap   pData,                                         mng_chunkp  pHeader,                                         mng_uint32  iRawlen,                                         mng_uint8p  pRawdata,                                         mng_chunkp* pChunk);typedef mng_retcode (*mng_writechunk)   (mng_datap   pData,                                         mng_chunkp  pChunk);typedef mng_retcode (*mng_assignchunk)  (mng_datap   pData,                                         mng_chunkp  pChunkto,                                         mng_chunkp  pChunkfrom);/* ************************************************************************** */typedef struct {                       /* generic header */           mng_chunkid       iChunkname;           mng_createchunk   fCreate;           mng_cleanupchunk  fCleanup;           mng_readchunk     fRead;           mng_writechunk    fWrite;           mng_assignchunk   fAssign;           mng_chunkp        pNext;    /* for double-linked list */           mng_chunkp        pPrev;#ifdef MNG_OPTIMIZE_CHUNKINITFREE           mng_size_t        iChunksize;#endif#ifdef MNG_OPTIMIZE_CHUNKREADER           mng_chunk_descp   pChunkdescr;#endif        } mng_chunk_header;typedef mng_chunk_header * mng_chunk_headerp;/* ************************************************************************** */typedef struct {                       /* IHDR */           mng_chunk_header  sHeader;           mng_uint32        iWidth;           mng_uint32        iHeight;           mng_uint8         iBitdepth;           mng_uint8         iColortype;           mng_uint8         iCompression;           mng_uint8         iFilter;           mng_uint8         iInterlace;        } mng_ihdr;typedef mng_ihdr * mng_ihdrp;/* ************************************************************************** */typedef struct {                       /* PLTE */           mng_chunk_header  sHeader;           mng_bool          bEmpty;           mng_uint32        iEntrycount;           mng_rgbpaltab     aEntries;        } mng_plte;typedef mng_plte * mng_pltep;/* ************************************************************************** */typedef struct {                       /* IDAT */           mng_chunk_header  sHeader;           mng_bool          bEmpty;           mng_uint32        iDatasize;           mng_ptr           pData;        } mng_idat;typedef mng_idat * mng_idatp;/* ************************************************************************** */typedef struct {                       /* IEND */           mng_chunk_header  sHeader;        } mng_iend;typedef mng_iend * mng_iendp;/* ************************************************************************** */typedef struct {                       /* tRNS */           mng_chunk_header  sHeader;           mng_bool          bEmpty;           mng_bool          bGlobal;           mng_uint8         iType;    /* colortype (0,2,3) */           mng_uint32        iCount;           mng_uint8arr      aEntries;           mng_uint16        iGray;           mng_uint16        iRed;           mng_uint16        iGreen;           mng_uint16        iBlue;           mng_uint32        iRawlen;           mng_uint8arr      aRawdata;        } mng_trns;typedef mng_trns * mng_trnsp;/* ************************************************************************** */typedef struct {                       /* gAMA */           mng_chunk_header  sHeader;           mng_bool          bEmpty;           mng_uint32        iGamma;        } mng_gama;typedef mng_gama * mng_gamap;/* ************************************************************************** */#ifndef MNG_SKIPCHUNK_cHRMtypedef struct {                       /* cHRM */           mng_chunk_header  sHeader;           mng_bool          bEmpty;           mng_uint32        iWhitepointx;           mng_uint32        iWhitepointy;           mng_uint32        iRedx;           mng_uint32        iRedy;           mng_uint32        iGreenx;           mng_uint32        iGreeny;           mng_uint32        iBluex;           mng_uint32        iBluey;        } mng_chrm;typedef mng_chrm * mng_chrmp;#endif/* ************************************************************************** */typedef struct {                       /* sRGB */           mng_chunk_header  sHeader;           mng_bool          bEmpty;           mng_uint8         iRenderingintent;        } mng_srgb;typedef mng_srgb * mng_srgbp;/* ************************************************************************** */#ifndef MNG_SKIPCHUNK_iCCPtypedef struct {                       /* iCCP */           mng_chunk_header  sHeader;           mng_bool          bEmpty;           mng_uint32        iNamesize;           mng_pchar         zName;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -