亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? libmng_chunk_io.c

?? 一款最完整的工業(yè)組態(tài)軟源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
  return MNG_NOERROR;
}

/* ************************************************************************** */
/* B004 */
#endif /* MNG_INCLUDE_WRITE_PROCS */
/* B004 */
/* ************************************************************************** */
/* *                                                                        * */
/* * chunk read functions                                                   * */
/* *                                                                        * */
/* ************************************************************************** */

#ifdef MNG_INCLUDE_READ_PROCS

/* ************************************************************************** */

READ_CHUNK (mng_read_ihdr)
{
#ifdef MNG_SUPPORT_TRACE
  MNG_TRACE (pData, MNG_FN_READ_IHDR, MNG_LC_START)
#endif

  if (iRawlen != 13)                   /* length oke ? */
    MNG_ERROR (pData, MNG_INVALIDLENGTH)
                                       /* only allowed inside PNG or MNG */
  if ((pData->eSigtype != mng_it_png) && (pData->eSigtype != mng_it_mng))
    MNG_ERROR (pData, MNG_CHUNKNOTALLOWED)
                                       /* sequence checks */
  if ((pData->eSigtype == mng_it_png) && (pData->iChunkseq > 1))
    MNG_ERROR (pData, MNG_SEQUENCEERROR)

#ifdef MNG_INCLUDE_JNG
  if ((pData->bHasIHDR) || (pData->bHasBASI) || (pData->bHasIDAT) || (pData->bHasJHDR))
#else
  if ((pData->bHasIHDR) || (pData->bHasBASI) || (pData->bHasIDAT))
#endif
    MNG_ERROR (pData, MNG_SEQUENCEERROR)

  pData->bHasIHDR      = MNG_TRUE;     /* indicate IHDR is present */
                                       /* and store interesting fields */
  if ((!pData->bHasDHDR) || (pData->iDeltatype == MNG_DELTATYPE_NOCHANGE))
  {
    pData->iDatawidth  = mng_get_uint32 (pRawdata);
    pData->iDataheight = mng_get_uint32 (pRawdata+4);
  }
  
  pData->iBitdepth     = *(pRawdata+8);
  pData->iColortype    = *(pRawdata+9);
  pData->iCompression  = *(pRawdata+10);
  pData->iFilter       = *(pRawdata+11);
  pData->iInterlace    = *(pRawdata+12);

#if defined(MNG_NO_16BIT_SUPPORT)
  pData->iPNGmult = 1;
  pData->iPNGdepth = pData->iBitdepth;

  if (pData->iBitdepth > 8)
    {
      pData->iBitdepth = 8;
      pData->iPNGmult = 2;
    }
#endif

  if ((pData->iBitdepth !=  8)      /* parameter validity checks */
      && (pData->iBitdepth !=  1) &&
      (pData->iBitdepth !=  2) &&
      (pData->iBitdepth !=  4)
#ifndef MNG_NO_16BIT_SUPPORT
      && (pData->iBitdepth != 16)   
#endif
      )
    MNG_ERROR (pData, MNG_INVALIDBITDEPTH)

  if ((pData->iColortype != MNG_COLORTYPE_GRAY   ) &&
      (pData->iColortype != MNG_COLORTYPE_RGB    ) &&
      (pData->iColortype != MNG_COLORTYPE_INDEXED) &&
      (pData->iColortype != MNG_COLORTYPE_GRAYA  ) &&
      (pData->iColortype != MNG_COLORTYPE_RGBA   )    )
    MNG_ERROR (pData, MNG_INVALIDCOLORTYPE)

  if ((pData->iColortype == MNG_COLORTYPE_INDEXED) && (pData->iBitdepth > 8))
    MNG_ERROR (pData, MNG_INVALIDBITDEPTH)

  if (((pData->iColortype == MNG_COLORTYPE_RGB    ) ||
       (pData->iColortype == MNG_COLORTYPE_GRAYA  ) ||
       (pData->iColortype == MNG_COLORTYPE_RGBA   )    ) &&
      (pData->iBitdepth < 8                            )    )
    MNG_ERROR (pData, MNG_INVALIDBITDEPTH)

  if (pData->iCompression != MNG_COMPRESSION_DEFLATE)
    MNG_ERROR (pData, MNG_INVALIDCOMPRESS)

#if defined(FILTER192) || defined(FILTER193)
  if ((pData->iFilter != MNG_FILTER_ADAPTIVE ) &&
#if defined(FILTER192) && defined(FILTER193)
      (pData->iFilter != MNG_FILTER_DIFFERING) &&
      (pData->iFilter != MNG_FILTER_NOFILTER )    )
#else
#ifdef FILTER192
      (pData->iFilter != MNG_FILTER_DIFFERING)    )
#else
      (pData->iFilter != MNG_FILTER_NOFILTER )    )
#endif
#endif
    MNG_ERROR (pData, MNG_INVALIDFILTER)
#else
  if (pData->iFilter)
    MNG_ERROR (pData, MNG_INVALIDFILTER)
#endif

  if ((pData->iInterlace != MNG_INTERLACE_NONE ) &&
      (pData->iInterlace != MNG_INTERLACE_ADAM7)    )
    MNG_ERROR (pData, MNG_INVALIDINTERLACE)

#ifdef MNG_SUPPORT_DISPLAY 
#ifndef MNG_NO_DELTA_PNG
  if (pData->bHasDHDR)                 /* check the colortype for delta-images ! */
  {
    mng_imagedatap pBuf = ((mng_imagep)pData->pObjzero)->pImgbuf;

    if (pData->iColortype != pBuf->iColortype)
    {
      if ( ( (pData->iColortype != MNG_COLORTYPE_INDEXED) ||
             (pBuf->iColortype  == MNG_COLORTYPE_GRAY   )    ) &&
           ( (pData->iColortype != MNG_COLORTYPE_GRAY   ) ||
             (pBuf->iColortype  == MNG_COLORTYPE_INDEXED)    )    )
        MNG_ERROR (pData, MNG_INVALIDCOLORTYPE)
    }
  }
#endif
#endif

  if (!pData->bHasheader)              /* first chunk ? */
  {
    pData->bHasheader = MNG_TRUE;      /* we've got a header */
    pData->eImagetype = mng_it_png;    /* then this must be a PNG */
    pData->iWidth     = pData->iDatawidth;
    pData->iHeight    = pData->iDataheight;
                                       /* predict alpha-depth ! */
    if ((pData->iColortype == MNG_COLORTYPE_GRAYA  ) ||
        (pData->iColortype == MNG_COLORTYPE_RGBA   )    )
      pData->iAlphadepth = pData->iBitdepth;
    else
    if (pData->iColortype == MNG_COLORTYPE_INDEXED)
      pData->iAlphadepth = 8;          /* worst case scenario */
    else
      pData->iAlphadepth = 1;  /* Possible tRNS cheap binary transparency */
                                       /* fits on maximum canvas ? */
    if ((pData->iWidth > pData->iMaxwidth) || (pData->iHeight > pData->iMaxheight))
      MNG_WARNING (pData, MNG_IMAGETOOLARGE)

    if (pData->fProcessheader)         /* inform the app ? */
      if (!pData->fProcessheader (((mng_handle)pData), pData->iWidth, pData->iHeight))
        MNG_ERROR (pData, MNG_APPMISCERROR)
  }

  if (!pData->bHasDHDR)
    pData->iImagelevel++;              /* one level deeper */

#ifdef MNG_SUPPORT_DISPLAY
  {
    mng_retcode iRetcode = mng_process_display_ihdr (pData);

    if (iRetcode)                      /* on error bail out */
      return iRetcode;
  }
#endif /* MNG_SUPPORT_DISPLAY */

#ifdef MNG_STORE_CHUNKS
  if (pData->bStorechunks)
  {                                    /* initialize storage */
    mng_retcode iRetcode = ((mng_chunk_headerp)pHeader)->fCreate (pData, pHeader, ppChunk);

    if (iRetcode)                      /* on error bail out */
      return iRetcode;
                                       /* fill the fields */
    ((mng_ihdrp)*ppChunk)->iWidth       = mng_get_uint32 (pRawdata);
    ((mng_ihdrp)*ppChunk)->iHeight      = mng_get_uint32 (pRawdata+4);
    ((mng_ihdrp)*ppChunk)->iBitdepth    = pData->iBitdepth;
    ((mng_ihdrp)*ppChunk)->iColortype   = pData->iColortype;
    ((mng_ihdrp)*ppChunk)->iCompression = pData->iCompression;
    ((mng_ihdrp)*ppChunk)->iFilter      = pData->iFilter;
    ((mng_ihdrp)*ppChunk)->iInterlace   = pData->iInterlace;
  }
#endif /* MNG_STORE_CHUNKS */

#ifdef MNG_SUPPORT_TRACE
  MNG_TRACE (pData, MNG_FN_READ_IHDR, MNG_LC_END)
#endif

  return MNG_NOERROR;                  /* done */
}

/* ************************************************************************** */

READ_CHUNK (mng_read_plte)
{
#if defined(MNG_SUPPORT_DISPLAY) || defined(MNG_STORE_CHUNKS)
  mng_uint32  iX;
  mng_uint8p  pRawdata2;
#endif
#ifdef MNG_SUPPORT_DISPLAY
  mng_uint32  iRawlen2;
#endif

#ifdef MNG_SUPPORT_TRACE
  MNG_TRACE (pData, MNG_FN_READ_PLTE, MNG_LC_START)
#endif
                                       /* sequence checks */
  if ((!pData->bHasMHDR) && (!pData->bHasIHDR) &&
      (!pData->bHasBASI) && (!pData->bHasDHDR)    )
    MNG_ERROR (pData, MNG_SEQUENCEERROR)

#ifdef MNG_INCLUDE_JNG
  if ((pData->bHasIDAT) || (pData->bHasJHDR))
#else
  if (pData->bHasIDAT)
#endif  
    MNG_ERROR (pData, MNG_SEQUENCEERROR)
                                       /* multiple PLTE only inside BASI */
  if ((pData->bHasPLTE) && (!pData->bHasBASI))
    MNG_ERROR (pData, MNG_MULTIPLEERROR)
                                       /* length must be multiple of 3 */
  if (((iRawlen % 3) != 0) || (iRawlen > 768))
    MNG_ERROR (pData, MNG_INVALIDLENGTH)

  if ((pData->bHasIHDR) || (pData->bHasBASI) || (pData->bHasDHDR))
  {                                    /* only allowed for indexed-color or
                                          rgb(a)-color! */
    if ((pData->iColortype != 2) && (pData->iColortype != 3) && (pData->iColortype != 6))
      MNG_ERROR (pData, MNG_CHUNKNOTALLOWED)
                                       /* empty only allowed if global present */
    if ((iRawlen == 0) && (!pData->bHasglobalPLTE))
        MNG_ERROR (pData, MNG_CANNOTBEEMPTY)
  }
  else
  {
    if (iRawlen == 0)                  /* cannot be empty as global! */
      MNG_ERROR (pData, MNG_CANNOTBEEMPTY)
  }

  if ((pData->bHasIHDR) || (pData->bHasBASI) || (pData->bHasDHDR))
    pData->bHasPLTE = MNG_TRUE;        /* got it! */
  else
    pData->bHasglobalPLTE = MNG_TRUE;

  pData->iPLTEcount = iRawlen / 3;  

#ifdef MNG_SUPPORT_DISPLAY
  if ((pData->bHasIHDR) || (pData->bHasBASI) || (pData->bHasDHDR))
  {
    mng_imagep     pImage;
    mng_imagedatap pBuf;

#ifndef MNG_NO_DELTA_PNG
    if (pData->bHasDHDR)               /* processing delta-image ? */
    {                                  /* store in object 0 !!! */
      pImage           = (mng_imagep)pData->pObjzero;
      pBuf             = pImage->pImgbuf;
      pBuf->bHasPLTE   = MNG_TRUE;     /* it's definitely got a PLTE now */
      pBuf->iPLTEcount = iRawlen / 3;  /* this is the exact length */
      pRawdata2        = pRawdata;     /* copy the entries */

      for (iX = 0; iX < iRawlen / 3; iX++)
      {
        pBuf->aPLTEentries[iX].iRed   = *pRawdata2;
        pBuf->aPLTEentries[iX].iGreen = *(pRawdata2+1);
        pBuf->aPLTEentries[iX].iBlue  = *(pRawdata2+2);

        pRawdata2 += 3;
      }
    }
    else
#endif
    {                                  /* get the current object */
      pImage = (mng_imagep)pData->pCurrentobj;

      if (!pImage)                     /* no object then dump it in obj 0 */
        pImage = (mng_imagep)pData->pObjzero;

      pBuf = pImage->pImgbuf;          /* address the object buffer */
      pBuf->bHasPLTE = MNG_TRUE;       /* and tell it it's got a PLTE now */

      if (!iRawlen)                    /* if empty, inherit from global */
      {
        pBuf->iPLTEcount = pData->iGlobalPLTEcount;
        MNG_COPY (pBuf->aPLTEentries, pData->aGlobalPLTEentries,
                  sizeof (pBuf->aPLTEentries))

        if (pData->bHasglobalTRNS)     /* also copy global tRNS ? */
        {                              /* indicate tRNS available */
          pBuf->bHasTRNS = MNG_TRUE;

          iRawlen2  = pData->iGlobalTRNSrawlen;
          pRawdata2 = (mng_uint8p)(pData->aGlobalTRNSrawdata);
                                       /* global length oke ? */
          if ((iRawlen2 == 0) || (iRawlen2 > pBuf->iPLTEcount))
            MNG_ERROR (pData, MNG_GLOBALLENGTHERR)
                                       /* copy it */
          pBuf->iTRNScount = iRawlen2;
          MNG_COPY (pBuf->aTRNSentries, pRawdata2, iRawlen2)
        }
      }
      else
      {                                /* store fields for future reference */
        pBuf->iPLTEcount = iRawlen / 3;
        pRawdata2        = pRawdata;

        for (iX = 0; iX < pBuf->iPLTEcount; iX++)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区不卡国产欧美 | 加勒比av一区二区| 欧美日韩一级片网站| 日日嗨av一区二区三区四区| 欧美欧美欧美欧美| 免费观看在线综合| 亚洲精品一线二线三线无人区| 激情伊人五月天久久综合| 久久影视一区二区| av一本久道久久综合久久鬼色| 亚洲四区在线观看| 欧美日韩一区二区在线观看视频| 日韩黄色小视频| 久久久精品日韩欧美| 成人丝袜视频网| 亚洲国产精品久久人人爱蜜臀| 欧美福利一区二区| 国产福利91精品一区| 一区二区三区在线视频免费 | 成人高清视频在线观看| 亚洲天堂a在线| 欧美男同性恋视频网站| 极品少妇xxxx偷拍精品少妇| 国产精品福利一区| 欧美欧美欧美欧美| 国产成人免费av在线| 亚洲国产精品一区二区久久恐怖片| 欧美精品乱码久久久久久按摩| 国产伦精品一区二区三区免费迷| 国产精品传媒在线| 日韩一区二区三区精品视频 | 亚洲欧美乱综合| 欧美精品乱人伦久久久久久| 国产九色sp调教91| 艳妇臀荡乳欲伦亚洲一区| 精品毛片乱码1区2区3区| 91视频免费观看| 蜜臀久久久99精品久久久久久| 国产精品家庭影院| 日韩欧美在线123| 色视频成人在线观看免| 国产在线精品一区二区三区不卡 | 国产欧美日韩视频一区二区| 欧美疯狂做受xxxx富婆| 成人av网在线| 激情综合色丁香一区二区| 亚洲精品乱码久久久久久| 久久久精品影视| 欧美一级日韩免费不卡| 69成人精品免费视频| 99天天综合性| 粉嫩av一区二区三区| 久久不见久久见中文字幕免费| 亚洲精品第1页| 国产精品久久久久一区| www激情久久| 欧美一级专区免费大片| 欧美日韩一区二区欧美激情| 91浏览器打开| 国产成人av一区二区| 精品中文字幕一区二区小辣椒 | 欧美在线999| 99精品一区二区| 高清视频一区二区| 国产精品一区一区三区| 久久精品国产亚洲aⅴ| 丝袜美腿亚洲综合| 亚洲成年人网站在线观看| 亚洲欧美电影一区二区| 国产精品久久久久永久免费观看 | av午夜精品一区二区三区| 精品一区二区三区免费| 麻豆免费看一区二区三区| 蜜臀久久99精品久久久画质超高清 | 在线精品观看国产| 欧美精品一区二区三| 欧美一个色资源| 91精品欧美综合在线观看最新| 在线国产电影不卡| 欧美日韩在线精品一区二区三区激情| 色又黄又爽网站www久久| 色婷婷国产精品| 在线看日本不卡| 欧美日韩五月天| 在线综合+亚洲+欧美中文字幕| 91精品国产手机| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 亚洲精品美腿丝袜| 亚洲一区在线看| 五月综合激情网| 蜜桃一区二区三区在线观看| 久国产精品韩国三级视频| 韩国v欧美v亚洲v日本v| 国产精品一级二级三级| av一区二区三区四区| 在线观看视频一区二区欧美日韩| 欧美日韩成人高清| 日韩你懂的在线观看| 国产日韩欧美在线一区| 欧美激情一区二区三区蜜桃视频 | 欧美在线三级电影| 在线不卡中文字幕播放| 91精品国产综合久久久久久久| 欧美一级xxx| 中文字幕欧美区| 亚洲国产精品天堂| 麻豆成人综合网| 成人深夜在线观看| 欧美日韩一区二区三区在线看| 日韩精品专区在线影院重磅| 国产精品丝袜久久久久久app| 亚洲图片欧美激情| 蜜桃av噜噜一区| 99久久伊人网影院| 91精品国产综合久久久久久| 国产精品天美传媒沈樵| 婷婷一区二区三区| 国产剧情在线观看一区二区| 91在线视频官网| 欧美一区二区二区| 中文字幕一区二区视频| 午夜一区二区三区在线观看| 国产传媒欧美日韩成人| 欧美日韩一区二区三区在线看| 久久精品一区二区三区不卡牛牛| 亚洲免费视频成人| 国产又粗又猛又爽又黄91精品| 在线亚洲免费视频| 久久久亚洲综合| 亚洲成av人片一区二区三区| 高清久久久久久| 91麻豆精品国产91久久久久久| 久久精品男人天堂av| 首页国产欧美久久| aaa欧美色吧激情视频| 日韩午夜av一区| 一区二区三区电影在线播| 国产91精品精华液一区二区三区| 欧美日韩在线三区| 亚洲蜜臀av乱码久久精品蜜桃| 韩国三级中文字幕hd久久精品| 欧洲中文字幕精品| 国产精品视频在线看| 久久国产婷婷国产香蕉| 在线国产电影不卡| 亚洲欧洲三级电影| 国产精品一级片在线观看| 欧美一区二视频| 亚洲制服丝袜在线| 91一区二区在线观看| 国产欧美视频在线观看| 久久精品国产亚洲a| 欧美一区二区在线播放| 亚洲一区欧美一区| 97精品久久久久中文字幕| 久久精品人人做人人爽人人| 韩国理伦片一区二区三区在线播放| 欧美疯狂性受xxxxx喷水图片| 一二三区精品视频| 色94色欧美sute亚洲线路二| 亚洲三级在线免费观看| 91在线观看视频| 综合久久久久久| 91在线云播放| 亚洲欧美另类小说视频| 91视频国产观看| 亚洲激情网站免费观看| 色婷婷亚洲综合| 亚洲精品国产一区二区精华液| 不卡欧美aaaaa| 中文字幕在线一区二区三区| 99久久综合99久久综合网站| 亚洲婷婷在线视频| 91久久精品一区二区| 亚洲一区精品在线| 欧美日韩一级黄| 蜜桃精品视频在线观看| 日韩欧美中文字幕一区| 国产一区二区三区免费看| 欧美韩国日本综合| 91小视频免费看| 亚洲成人av一区二区三区| 欧美一区二区三区男人的天堂| 奇米在线7777在线精品| 久久先锋影音av| 99精品国产一区二区三区不卡| 亚洲精品水蜜桃| 91精品国产高清一区二区三区蜜臀| 麻豆国产精品777777在线| 国产亚洲一区二区三区在线观看| 国产成人啪免费观看软件| 亚洲欧美偷拍三级| 欧美一区二区在线观看| 国产精品综合一区二区三区| |精品福利一区二区三区| 欧美日韩一级二级| 国产一区二区按摩在线观看| 中文字幕亚洲一区二区av在线| 欧美三级日韩三级国产三级| 蜜桃一区二区三区四区|