📄 libmng_chunk_prc.c
字号:
return MNG_NOERROR;
}
#endif
/* ************************************************************************** */
#ifndef MNG_SKIPCHUNK_pHYg
FREE_CHUNK_HDR (mng_free_phyg)
{
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_PHYG, MNG_LC_START)
#endif
MNG_FREEX (pData, pHeader, sizeof (mng_phyg))
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_PHYG, MNG_LC_END)
#endif
return MNG_NOERROR;
}
#endif
/* ************************************************************************** */
#ifdef MNG_INCLUDE_JNG
FREE_CHUNK_HDR (mng_free_jhdr)
{
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_JHDR, MNG_LC_START)
#endif
MNG_FREEX (pData, pHeader, sizeof (mng_jhdr))
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_JHDR, MNG_LC_END)
#endif
return MNG_NOERROR;
}
#endif /* MNG_INCLUDE_JNG */
/* ************************************************************************** */
#ifdef MNG_INCLUDE_JNG
FREE_CHUNK_HDR (mng_free_jdaa)
{
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_JDAA, MNG_LC_START)
#endif
if (((mng_jdaap)pHeader)->iDatasize)
MNG_FREEX (pData, ((mng_jdaap)pHeader)->pData,
((mng_jdaap)pHeader)->iDatasize)
MNG_FREEX (pData, pHeader, sizeof (mng_jdaa))
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_JDAA, MNG_LC_END)
#endif
return MNG_NOERROR;
}
#endif /* MNG_INCLUDE_JNG */
/* ************************************************************************** */
#ifdef MNG_INCLUDE_JNG
FREE_CHUNK_HDR (mng_free_jdat)
{
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_JDAT, MNG_LC_START)
#endif
if (((mng_jdatp)pHeader)->iDatasize)
MNG_FREEX (pData, ((mng_jdatp)pHeader)->pData,
((mng_jdatp)pHeader)->iDatasize)
MNG_FREEX (pData, pHeader, sizeof (mng_jdat))
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_JDAT, MNG_LC_END)
#endif
return MNG_NOERROR;
}
#endif /* MNG_INCLUDE_JNG */
/* ************************************************************************** */
#ifdef MNG_INCLUDE_JNG
FREE_CHUNK_HDR (mng_free_jsep)
{
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_JSEP, MNG_LC_START)
#endif
MNG_FREEX (pData, pHeader, sizeof (mng_jsep))
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_JSEP, MNG_LC_END)
#endif
return MNG_NOERROR;
}
#endif /* MNG_INCLUDE_JNG */
/* ************************************************************************** */
#ifndef MNG_NO_DELTA_PNG
FREE_CHUNK_HDR (mng_free_dhdr)
{
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_DHDR, MNG_LC_START)
#endif
MNG_FREEX (pData, pHeader, sizeof (mng_dhdr))
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_DHDR, MNG_LC_END)
#endif
return MNG_NOERROR;
}
#endif
/* ************************************************************************** */
#ifndef MNG_NO_DELTA_PNG
FREE_CHUNK_HDR (mng_free_prom)
{
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_PROM, MNG_LC_START)
#endif
MNG_FREEX (pData, pHeader, sizeof (mng_prom))
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_PROM, MNG_LC_END)
#endif
return MNG_NOERROR;
}
#endif
/* ************************************************************************** */
#ifndef MNG_NO_DELTA_PNG
FREE_CHUNK_HDR (mng_free_ipng)
{
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_IPNG, MNG_LC_START)
#endif
MNG_FREEX (pData, pHeader, sizeof (mng_ipng))
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_IPNG, MNG_LC_END)
#endif
return MNG_NOERROR;
}
#endif
/* ************************************************************************** */
#ifndef MNG_NO_DELTA_PNG
FREE_CHUNK_HDR (mng_free_pplt)
{
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_PPLT, MNG_LC_START)
#endif
MNG_FREEX (pData, pHeader, sizeof (mng_pplt))
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_PPLT, MNG_LC_END)
#endif
return MNG_NOERROR;
}
#endif
/* ************************************************************************** */
#ifndef MNG_NO_DELTA_PNG
#ifdef MNG_INCLUDE_JNG
FREE_CHUNK_HDR (mng_free_ijng)
{
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_IJNG, MNG_LC_START)
#endif
MNG_FREEX (pData, pHeader, sizeof (mng_ijng))
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_IJNG, MNG_LC_END)
#endif
return MNG_NOERROR;
}
#endif
#endif
/* ************************************************************************** */
#ifndef MNG_NO_DELTA_PNG
FREE_CHUNK_HDR (mng_free_drop)
{
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_DROP, MNG_LC_START)
#endif
if (((mng_dropp)pHeader)->iCount)
MNG_FREEX (pData, ((mng_dropp)pHeader)->pChunknames,
((mng_dropp)pHeader)->iCount * sizeof (mng_chunkid) )
MNG_FREEX (pData, pHeader, sizeof (mng_drop))
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_DROP, MNG_LC_END)
#endif
return MNG_NOERROR;
}
#endif
/* ************************************************************************** */
#ifndef MNG_NO_DELTA_PNG
#ifndef MNG_SKIPCHUNK_DBYK
FREE_CHUNK_HDR (mng_free_dbyk)
{
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_DBYK, MNG_LC_START)
#endif
if (((mng_dbykp)pHeader)->iKeywordssize)
MNG_FREEX (pData, ((mng_dbykp)pHeader)->zKeywords,
((mng_dbykp)pHeader)->iKeywordssize)
MNG_FREEX (pData, pHeader, sizeof (mng_dbyk))
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_DBYK, MNG_LC_END)
#endif
return MNG_NOERROR;
}
#endif
#endif
/* ************************************************************************** */
#ifndef MNG_NO_DELTA_PNG
#ifndef MNG_SKIPCHUNK_ORDR
FREE_CHUNK_HDR (mng_free_ordr)
{
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_ORDR, MNG_LC_START)
#endif
if (((mng_ordrp)pHeader)->iCount)
MNG_FREEX (pData, ((mng_ordrp)pHeader)->pEntries,
((mng_ordrp)pHeader)->iCount * sizeof (mng_ordr_entry) )
MNG_FREEX (pData, pHeader, sizeof (mng_ordr))
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_ORDR, MNG_LC_END)
#endif
return MNG_NOERROR;
}
#endif
#endif
/* ************************************************************************** */
#ifndef MNG_SKIPCHUNK_MAGN
FREE_CHUNK_HDR (mng_free_magn)
{
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_MAGN, MNG_LC_START)
#endif
MNG_FREEX (pData, pHeader, sizeof (mng_magn))
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_MAGN, MNG_LC_END)
#endif
return MNG_NOERROR;
}
#endif
/* ************************************************************************** */
#ifndef MNG_SKIPCHUNK_evNT
FREE_CHUNK_HDR (mng_free_evnt)
{
mng_evnt_entryp pEntry = ((mng_evntp)pHeader)->pEntries;
mng_uint32 iX;
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_EVNT, MNG_LC_START)
#endif
for (iX = 0; iX < ((mng_evntp)pHeader)->iCount; iX++)
{
if (pEntry->iSegmentnamesize)
MNG_FREEX (pData, pEntry->zSegmentname, pEntry->iSegmentnamesize+1)
pEntry++;
}
if (((mng_evntp)pHeader)->iCount)
MNG_FREEX (pData, ((mng_evntp)pHeader)->pEntries,
((mng_evntp)pHeader)->iCount * sizeof (mng_evnt_entry) )
MNG_FREEX (pData, pHeader, sizeof (mng_evnt))
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_EVNT, MNG_LC_END)
#endif
return MNG_NOERROR;
}
#endif
/* ************************************************************************** */
FREE_CHUNK_HDR (mng_free_unknown)
{
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_UNKNOWN, MNG_LC_START)
#endif
if (((mng_unknown_chunkp)pHeader)->iDatasize)
MNG_FREEX (pData, ((mng_unknown_chunkp)pHeader)->pData,
((mng_unknown_chunkp)pHeader)->iDatasize)
MNG_FREEX (pData, pHeader, sizeof (mng_unknown_chunk))
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_FREE_UNKNOWN, MNG_LC_END)
#endif
return MNG_NOERROR;
}
/* ************************************************************************** */
/* * * */
/* * Chunk specific copy routines * */
/* * * */
/* ************************************************************************** */
#ifdef MNG_INCLUDE_WRITE_PROCS
/* ************************************************************************** */
ASSIGN_CHUNK_HDR (mng_assign_ihdr)
{
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_ASSIGN_IHDR, MNG_LC_START)
#endif
if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_IHDR)
MNG_ERROR (pData, MNG_WRONGCHUNK) /* ouch */
((mng_ihdrp)pChunkto)->iWidth = ((mng_ihdrp)pChunkfrom)->iWidth;
((mng_ihdrp)pChunkto)->iHeight = ((mng_ihdrp)pChunkfrom)->iHeight;
((mng_ihdrp)pChunkto)->iBitdepth = ((mng_ihdrp)pChunkfrom)->iBitdepth;
((mng_ihdrp)pChunkto)->iColortype = ((mng_ihdrp)pChunkfrom)->iColortype;
((mng_ihdrp)pChunkto)->iCompression = ((mng_ihdrp)pChunkfrom)->iCompression;
((mng_ihdrp)pChunkto)->iFilter = ((mng_ihdrp)pChunkfrom)->iFilter;
((mng_ihdrp)pChunkto)->iInterlace = ((mng_ihdrp)pChunkfrom)->iInterlace;
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_ASSIGN_IHDR, MNG_LC_END)
#endif
return MNG_NOERROR;
}
/* ************************************************************************** */
ASSIGN_CHUNK_HDR (mng_assign_plte)
{
mng_uint32 iX;
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_ASSIGN_PLTE, MNG_LC_START)
#endif
if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_PLTE)
MNG_ERROR (pData, MNG_WRONGCHUNK) /* ouch */
((mng_pltep)pChunkto)->bEmpty = ((mng_pltep)pChunkfrom)->bEmpty;
((mng_pltep)pChunkto)->iEntrycount = ((mng_pltep)pChunkfrom)->iEntrycount;
for (iX = 0; iX < ((mng_pltep)pChunkto)->iEntrycount; iX++)
((mng_pltep)pChunkto)->aEntries [iX] = ((mng_pltep)pChunkfrom)->aEntries [iX];
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_ASSIGN_PLTE, MNG_LC_END)
#endif
return MNG_NOERROR;
}
/* ************************************************************************** */
ASSIGN_CHUNK_HDR (mng_assign_idat)
{
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_ASSIGN_IDAT, MNG_LC_START)
#endif
if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_IDAT)
MNG_ERROR (pData, MNG_WRONGCHUNK) /* ouch */
((mng_idatp)pChunkto)->bEmpty = ((mng_idatp)pChunkfrom)->bEmpty;
((mng_idatp)pChunkto)->iDatasize = ((mng_idatp)pChunkfrom)->iDatasize;
if (((mng_idatp)pChunkto)->iDatasize)
{
MNG_ALLOC (pData, ((mng_idatp)pChunkto)->pData, ((mng_idatp)pChunkto)->iDatasize)
MNG_COPY (((mng_idatp)pChunkto)->pData, ((mng_idatp)pChunkfrom)->pData,
((mng_idatp)pChunkto)->iDatasize)
}
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_ASSIGN_IDAT, MNG_LC_END)
#endif
return MNG_NOERROR;
}
/* ************************************************************************** */
ASSIGN_CHUNK_HDR (mng_assign_iend)
{
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_ASSIGN_IEND, MNG_LC_START)
#endif
if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_IEND)
MNG_ERROR (pData, MNG_WRONGCHUNK) /* ouch */
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_ASSIGN_IEND, MNG_LC_END)
#endif
return MNG_NOERROR;
}
/* ************************************************************************** */
ASSIGN_CHUNK_HDR (mng_assign_trns)
{
mng_uint32 iX;
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_ASSIGN_TRNS, MNG_LC_START)
#endif
if (((mng_chunk_headerp)pChunkfrom)->iChunkname != MNG_UINT_tRNS)
MNG_ERROR (pData, MNG_WRONGCHUNK) /* ouch */
((mng_trnsp)pChunkto)->bEmpty = ((mng_trnsp)pChunkfrom)->bEmpty;
((mng_trnsp)pChunkto)->bGlobal = ((mng_trnsp)pChunkfrom)->bGlobal;
((mng_trnsp)pChunkto)->iType = ((mng_trnsp)pChunkfrom)->iType;
((mng_trnsp)pChunkto)->iCount = ((mng_trnsp)pChunkfrom)->iCount;
((mng_trnsp)pChunkto)->iGray = ((mng_trnsp)pChunkfrom)->iGray;
((mng_trnsp)pChunkto)->iRed = ((mng_trnsp)pChunkfrom)->iRed;
((mng_trnsp)pChunkto)->iGreen = ((mng_trnsp)pChunkfrom)->iGreen;
((mng_trnsp)pChunkto)->iBlue = ((mng_trnsp)pChunkfrom)->iBlue;
((mng_trnsp)pChunkto)->iRawlen = ((mng_trnsp)pChunkfrom)->iRawlen;
for (iX = 0; iX < ((mng_trnsp)pChunkto)->iCount; iX++)
((mng_trnsp)pChunkto)->aEntries [iX] = ((mng_trnsp)pChunkfrom)->aEntries [iX];
for (iX = 0; iX < ((mng_trnsp)pChunkto)->iRawlen; iX++)
((mng_trnsp)pChunkto)->aRawdata [iX] = ((mng_trnsp)pChunkfrom)->aRawdata [iX];
#ifdef MNG_SUPPORT_TRACE
MNG_TRACE (pData, MNG_FN_ASSIGN_TRNS, MNG_LC_END)
#endif
return MNG_NOERROR;
}
/* ************************************************************************** */
#ifndef MNG_SKIPCHUNK_gAMA
ASSIGN_CHUNK_HDR (mng_assign_gama)
{
#ifdef MNG_SUPPOR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -