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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? libmng_jpeg.c

?? 一款最完整的工業(yè)組態(tài)軟源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
  MNG_FREE (pData, pData->pJPEGrow2, pData->iJPEGrowlen2)
  MNG_FREE (pData, pData->pJPEGrow,  pData->iJPEGrowlen)
                                       /* whatever we were doing ... */
                                       /* we don't anymore ... */
  pData->bJPEGcompress     = MNG_FALSE;

  pData->bJPEGdecompress   = MNG_FALSE;
  pData->bJPEGhasheader    = MNG_FALSE;
  pData->bJPEGdecostarted  = MNG_FALSE;
  pData->bJPEGscanstarted  = MNG_FALSE;
  pData->bJPEGscanending   = MNG_FALSE;

  pData->bJPEGdecompress2  = MNG_FALSE;
  pData->bJPEGhasheader2   = MNG_FALSE;
  pData->bJPEGdecostarted2 = MNG_FALSE;
  pData->bJPEGscanstarted2 = MNG_FALSE;

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

  return MNG_NOERROR;
}

/* ************************************************************************** */
/* *                                                                        * */
/* * JPEG decompression routines (JDAT)                                     * */
/* *                                                                        * */
/* ************************************************************************** */

#ifdef MNG_INCLUDE_JNG_READ
mng_retcode mngjpeg_decompressinit (mng_datap pData)
{
#if defined(MNG_INCLUDE_IJG6B) && defined(MNG_USE_SETJMP)
  mng_retcode iRetcode;
#endif

#ifdef MNG_SUPPORT_TRACE
  MNG_TRACE (pData, MNG_FN_JPEG_DECOMPRESSINIT, MNG_LC_START)
#endif

#ifdef MNG_INCLUDE_IJG6B
  /* allocate and initialize a JPEG decompression object */
  pData->pJPEGdinfo->err = jpeg_std_error (pData->pJPEGderr);

#ifdef MNG_USE_SETJMP                  /* setup local JPEG error-routines */
  pData->pJPEGderr->error_exit     = mng_error_exit;
  pData->pJPEGderr->output_message = mng_output_message;

  iRetcode = setjmp (pData->sErrorbuf);/* setup local JPEG error-recovery */
  if (iRetcode != 0)                   /* got here from longjmp ? */
    MNG_ERRORJ (pData, iRetcode)       /* then IJG-lib issued an error */
#endif /* MNG_USE_SETJMP */

  /* allocate and initialize a JPEG decompression object (continued) */
#ifdef MNG_SUPPORT_TRACE
  MNG_TRACE (pData, MNG_FN_JPEG_DECOMPRESSINIT, MNG_LC_JPEG_CREATE_DECOMPRESS)
#endif
  jpeg_create_decompress (pData->pJPEGdinfo);

  pData->bJPEGdecompress = MNG_TRUE;   /* indicate it's initialized */

  /* specify the source of the compressed data (eg, a file) */
                                       /* no, not a file; we have buffered input */
  pData->pJPEGdinfo->src = pData->pJPEGdsrc;
                                       /* use the default handler */
  pData->pJPEGdinfo->src->resync_to_restart = jpeg_resync_to_restart;
                                       /* setup local source routine & parms */
  pData->pJPEGdinfo->src->init_source       = mng_init_source;
  pData->pJPEGdinfo->src->fill_input_buffer = mng_fill_input_buffer;
  pData->pJPEGdinfo->src->skip_input_data   = mng_skip_input_data;
  pData->pJPEGdinfo->src->term_source       = mng_term_source;
  pData->pJPEGdinfo->src->next_input_byte   = pData->pJPEGcurrent;
  pData->pJPEGdinfo->src->bytes_in_buffer   = pData->iJPEGbufremain;

#endif /* MNG_INCLUDE_IJG6B */

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

  return MNG_NOERROR;
}
#endif /* MNG_INCLUDE_JNG_READ */

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

#ifdef MNG_INCLUDE_JNG_READ
mng_retcode mngjpeg_decompressdata (mng_datap  pData,
                                    mng_uint32 iRawsize,
                                    mng_uint8p pRawdata)
{
  mng_retcode iRetcode;
  mng_uint32  iRemain;
  mng_uint8p  pWork;

#ifdef MNG_SUPPORT_TRACE
  MNG_TRACE (pData, MNG_FN_JPEG_DECOMPRESSDATA, MNG_LC_START)
#endif

#if defined (MNG_INCLUDE_IJG6B) && defined(MNG_USE_SETJMP)
  iRetcode = setjmp (pData->sErrorbuf);/* initialize local JPEG error-recovery */
  if (iRetcode != 0)                   /* got here from longjmp ? */
    MNG_ERRORJ (pData, iRetcode)       /* then IJG-lib issued an error */
#endif

  pWork   = pRawdata;
  iRemain = iRawsize;

  if (pData->iJPEGtoskip)              /* JPEG-lib told us to skip some more data ? */
  {
    if (iRemain > pData->iJPEGtoskip)  /* enough data in this buffer ? */
    {
      iRemain -= pData->iJPEGtoskip;   /* skip enough to access the next byte */
      pWork   += pData->iJPEGtoskip;

      pData->iJPEGtoskip = 0;          /* no more to skip then */
    }
    else
    {
      pData->iJPEGtoskip -= iRemain;   /* skip all data in the buffer */
      iRemain = 0;                     /* and indicate this accordingly */
    }
                                       /* the skip set current-pointer to NULL ! */
    pData->pJPEGcurrent = pData->pJPEGbuf;
  }

  while (iRemain)                      /* repeat until no more input-bytes */
  {                                    /* need to shift anything ? */
    if ((pData->pJPEGcurrent > pData->pJPEGbuf) &&
        (pData->pJPEGcurrent - pData->pJPEGbuf + pData->iJPEGbufremain + iRemain > pData->iJPEGbufmax))
    {
      if (pData->iJPEGbufremain > 0)   /* then do so */
        MNG_COPY (pData->pJPEGbuf, pData->pJPEGcurrent, pData->iJPEGbufremain)

      pData->pJPEGcurrent = pData->pJPEGbuf;
    }
                                       /* does the remaining input fit into the buffer ? */
    if (pData->iJPEGbufremain + iRemain <= pData->iJPEGbufmax)
    {                                  /* move the lot */
      MNG_COPY ((pData->pJPEGcurrent + pData->iJPEGbufremain), pWork, iRemain)

      pData->iJPEGbufremain += iRemain;/* adjust remaining_bytes counter */
      iRemain = 0;                     /* and indicate there's no input left */
    }
    else
    {                                  /* calculate what does fit */
      mng_uint32 iFits = pData->iJPEGbufmax - pData->iJPEGbufremain;

      if (iFits <= 0)                  /* no space is just bugger 'm all */
        MNG_ERROR (pData, MNG_JPEGBUFTOOSMALL)
                                       /* move that */
      MNG_COPY ((pData->pJPEGcurrent + pData->iJPEGbufremain), pWork, iFits)

      pData->iJPEGbufremain += iFits;  /* adjust remain_bytes counter */
      iRemain -= iFits;                /* and the input-parms */
      pWork   += iFits;
    }

#ifdef MNG_INCLUDE_IJG6B
    pData->pJPEGdinfo->src->next_input_byte = pData->pJPEGcurrent;
    pData->pJPEGdinfo->src->bytes_in_buffer = pData->iJPEGbufremain;

    if (!pData->bJPEGhasheader)        /* haven't got the header yet ? */
    {
      /* call jpeg_read_header() to obtain image info */
#ifdef MNG_SUPPORT_TRACE
      MNG_TRACE (pData, MNG_FN_JPEG_DECOMPRESSDATA, MNG_LC_JPEG_READ_HEADER)
#endif
      if (jpeg_read_header (pData->pJPEGdinfo, TRUE) != JPEG_SUSPENDED)
      {                                /* indicate the header's oke */
        pData->bJPEGhasheader = MNG_TRUE;
                                       /* let's do some sanity checks ! */
        if ((pData->pJPEGdinfo->image_width  != pData->iDatawidth ) ||
            (pData->pJPEGdinfo->image_height != pData->iDataheight)    )
          MNG_ERROR (pData, MNG_JPEGPARMSERR)

        if ( ((pData->iJHDRcolortype == MNG_COLORTYPE_JPEGGRAY ) ||
              (pData->iJHDRcolortype == MNG_COLORTYPE_JPEGGRAYA)    ) &&
             (pData->pJPEGdinfo->jpeg_color_space != JCS_GRAYSCALE  )    )
          MNG_ERROR (pData, MNG_JPEGPARMSERR)

        if ( ((pData->iJHDRcolortype == MNG_COLORTYPE_JPEGCOLOR ) ||
              (pData->iJHDRcolortype == MNG_COLORTYPE_JPEGCOLORA)    ) &&
             (pData->pJPEGdinfo->jpeg_color_space != JCS_YCbCr       )    )
          MNG_ERROR (pData, MNG_JPEGPARMSERR)
                                       /* indicate whether or not it's progressive */
        pData->bJPEGprogressive = (mng_bool)jpeg_has_multiple_scans (pData->pJPEGdinfo);
                                       /* progressive+alpha can't display "on-the-fly"!! */
        if ((pData->bJPEGprogressive) &&
            ((pData->iJHDRcolortype == MNG_COLORTYPE_JPEGGRAYA ) ||
             (pData->iJHDRcolortype == MNG_COLORTYPE_JPEGCOLORA)    ))
          pData->fDisplayrow = MNG_NULL;
                                       /* allocate a row of JPEG-samples */
        if (pData->pJPEGdinfo->jpeg_color_space == JCS_YCbCr)
          pData->iJPEGrowlen = pData->pJPEGdinfo->image_width * RGB_PIXELSIZE;
        else
          pData->iJPEGrowlen = pData->pJPEGdinfo->image_width;

        MNG_ALLOC (pData, pData->pJPEGrow, pData->iJPEGrowlen)

        pData->iJPEGrgbrow = 0;        /* quite empty up to now */
      }

      pData->pJPEGcurrent   = (mng_uint8p)pData->pJPEGdinfo->src->next_input_byte;
      pData->iJPEGbufremain = (mng_uint32)pData->pJPEGdinfo->src->bytes_in_buffer;
    }
                                       /* decompress not started ? */
    if ((pData->bJPEGhasheader) && (!pData->bJPEGdecostarted))
    {
      /* set parameters for decompression */

      if (pData->bJPEGprogressive)     /* progressive display ? */
        pData->pJPEGdinfo->buffered_image = TRUE;

      /* jpeg_start_decompress(...); */
#ifdef MNG_SUPPORT_TRACE
      MNG_TRACE (pData, MNG_FN_JPEG_DECOMPRESSDATA, MNG_LC_JPEG_START_DECOMPRESS)
#endif
      if (jpeg_start_decompress (pData->pJPEGdinfo) == TRUE)
                                       /* indicate it started */
        pData->bJPEGdecostarted = MNG_TRUE;

      pData->pJPEGcurrent   = (mng_uint8p)pData->pJPEGdinfo->src->next_input_byte;
      pData->iJPEGbufremain = (mng_uint32)pData->pJPEGdinfo->src->bytes_in_buffer;
    }
                                       /* process some scanlines ? */
    if ((pData->bJPEGhasheader) && (pData->bJPEGdecostarted) &&
	    ((!jpeg_input_complete (pData->pJPEGdinfo)) ||
         (pData->pJPEGdinfo->output_scanline < pData->pJPEGdinfo->output_height) ||
         ((pData->bJPEGprogressive) && (pData->bJPEGscanending))))
    {
      mng_int32 iLines = 0;

      /* for (each output pass) */
      do
      {                                /* address the row output buffer */
        JSAMPROW pRow = (JSAMPROW)pData->pJPEGrow;

                                       /* init new pass ? */
        if ((pData->bJPEGprogressive) && (!pData->bJPEGscanstarted))
        {
          pData->bJPEGscanstarted = MNG_TRUE;

          /* adjust output decompression parameters if required */
          /* nop */

          /* start a new output pass */
#ifdef MNG_SUPPORT_TRACE
          MNG_TRACE (pData, MNG_FN_JPEG_DECOMPRESSDATA, MNG_LC_JPEG_START_OUTPUT)
#endif
          jpeg_start_output (pData->pJPEGdinfo, pData->pJPEGdinfo->input_scan_number);

          pData->iJPEGrow = 0;         /* start at row 0 in the image again */
        }

        /* while (scan lines remain to be read) */
        if ((!pData->bJPEGprogressive) || (!pData->bJPEGscanending))
        {
          do
          {
          /*   jpeg_read_scanlines(...); */
#ifdef MNG_SUPPORT_TRACE
            MNG_TRACE (pData, MNG_FN_JPEG_DECOMPRESSDATA, MNG_LC_JPEG_READ_SCANLINES)
#endif
            iLines = jpeg_read_scanlines (pData->pJPEGdinfo, (JSAMPARRAY)&pRow, 1);

            pData->pJPEGcurrent   = (mng_uint8p)pData->pJPEGdinfo->src->next_input_byte;
            pData->iJPEGbufremain = (mng_uint32)pData->pJPEGdinfo->src->bytes_in_buffer;

            if (iLines > 0)            /* got something ? */
            {
              if (pData->fStorerow2)   /* store in object ? */
              {
                iRetcode = ((mng_storerow)pData->fStorerow2) (pData);

                if (iRetcode)          /* on error bail out */
                return iRetcode;

              }
            }
          }
          while ((pData->pJPEGdinfo->output_scanline < pData->pJPEGdinfo->output_height) &&
                 (iLines > 0));        /* until end-of-image or not enough input-data */
        }

        /* terminate output pass */
        if ((pData->bJPEGprogressive) &&
            (pData->pJPEGdinfo->output_scanline >= pData->pJPEGdinfo->output_height))
        {
#ifdef MNG_SUPPORT_TRACE
          MNG_TRACE (pData, MNG_FN_JPEG_DECOMPRESSDATA, MNG_LC_JPEG_FINISH_OUTPUT)
#endif
          if (jpeg_finish_output (pData->pJPEGdinfo) != JPEG_SUSPENDED)
          {                            /* this scan has ended */
            pData->bJPEGscanstarted = MNG_FALSE;
            pData->bJPEGscanending  = MNG_FALSE;
          }
          else
          {
            pData->bJPEGscanending  = MNG_TRUE;
          }
        }
      }
      while ((!jpeg_input_complete (pData->pJPEGdinfo)) &&
             (iLines > 0) && (!pData->bJPEGscanending));
    }
                                       /* end of image ? */
    if ((pData->bJPEGhasheader) && (pData->bJPEGdecostarted) &&
        (!pData->bJPEGscanending) && (jpeg_input_complete (pData->pJPEGdinfo)) &&
        (pData->pJPEGdinfo->input_scan_number == pData->pJPEGdinfo->output_scan_number))
    {
      /* jpeg_finish_decompress(...); */
#ifdef MNG_SUPPORT_TRACE
      MNG_TRACE (pData, MNG_FN_JPEG_DECOMPRESSDATA, MNG_LC_JPEG_FINISH_DECOMPRESS)
#endif
      if (jpeg_finish_decompress (pData->pJPEGdinfo) == TRUE)
      {                                /* indicate it's done */
        pData->bJPEGhasheader   = MNG_FALSE;
        pData->bJPEGdecostarted = MNG_FALSE;
        pData->pJPEGcurrent     = (mng_uint8p)pData->pJPEGdinfo->src->next_input_byte;
        pData->iJPEGbufremain   = (mng_uint32)pData->pJPEGdinfo->src->bytes_in_buffer;
                                       /* remaining fluff is an error ! */
        if ((pData->iJPEGbufremain > 0) || (iRemain > 0))
          MNG_ERROR (pData, MNG_TOOMUCHJDAT)
      }
    }
#endif /* MNG_INCLUDE_IJG6B */
  }

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

  return MNG_NOERROR;
}
#endif /* MNG_INCLUDE_JNG_READ */

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

#ifdef MNG_INCLUDE_JNG_READ
mng_retcode mngjpeg_decompressfree (mng_datap pData)
{
#if defined(MNG_INCLUDE_IJG6B) && defined(MNG_USE_SETJMP)
  mng_retcode iRetcode;
#endif

#ifdef MNG_SUPPORT_TRACE
  MNG_TRACE (pData, MNG_FN_JPEG_DECOMPRESSFREE, MNG_LC_START)
#endif

#ifdef MNG_INCLUDE_IJG6B
#ifdef MNG_USE_SETJMP
  iRetcode = setjmp (pData->sErrorbuf);/* setup local JPEG error-recovery */
  if (iRetcode != 0)                   /* got here from longjmp ? */
    MNG_ERRORJ (pData, iRetcode)       /* then IJG-lib issued an error */
#endif
                                       /* free the row of JPEG-samples*/
  MNG_FREE (pData, pData->pJPEGrow, pData->iJPEGrowlen)

  /* release the JPEG decompression object */
#ifdef MNG_SUPPORT_TRACE

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲第一福利一区| 国产真实精品久久二三区| 26uuu色噜噜精品一区| 92精品国产成人观看免费| 天天综合天天做天天综合| 国产精品久久国产精麻豆99网站| 欧美挠脚心视频网站| 成人性生交大合| 欧美aⅴ一区二区三区视频| 亚洲天天做日日做天天谢日日欢 | 亚洲国产精品传媒在线观看| 欧美日韩国产首页在线观看| 不卡视频在线观看| 激情五月激情综合网| 亚洲国产精品一区二区久久恐怖片| 国产婷婷色一区二区三区| 91精品国产综合久久小美女| 国产传媒欧美日韩成人| 成人黄色在线网站| 精品一区二区三区影院在线午夜| 亚洲第一激情av| 亚洲日韩欧美一区二区在线| 欧美高清在线精品一区| 精品国产一区二区三区久久久蜜月| 欧美综合亚洲图片综合区| 粉嫩av一区二区三区| 国产在线精品一区在线观看麻豆| 亚洲va欧美va国产va天堂影院| 国产精品久久久久久久久免费相片 | 亚洲综合丁香婷婷六月香| 1000部国产精品成人观看| 日本一区免费视频| 国产亚洲污的网站| 欧美r级在线观看| 欧美一级国产精品| 91精品婷婷国产综合久久性色| 欧美性xxxxxx少妇| 91福利社在线观看| 欧美自拍偷拍一区| 在线视频一区二区三| 日本道在线观看一区二区| 色系网站成人免费| 色狠狠综合天天综合综合| 91免费版pro下载短视频| 97久久超碰精品国产| aaa亚洲精品一二三区| 99久久伊人精品| 99国产精品视频免费观看| 99热精品国产| 色婷婷久久一区二区三区麻豆| 91亚洲精品久久久蜜桃网站| 日本久久电影网| 欧美日韩精品高清| 日韩一级免费观看| 精品久久国产97色综合| 久久综合999| 欧美国产一区二区| 亚洲视频一二区| 亚洲尤物视频在线| 日本不卡在线视频| 国产一区二区三区日韩| 成人免费观看av| 日本精品视频一区二区三区| 欧美日韩国产成人在线91| 日韩欧美一区在线观看| 久久午夜色播影院免费高清| 欧美激情一区二区三区蜜桃视频| 亚洲欧洲另类国产综合| 亚洲午夜激情av| 激情综合色丁香一区二区| 风间由美一区二区三区在线观看| 91农村精品一区二区在线| 欧美老年两性高潮| 精品剧情v国产在线观看在线| 国产亚洲视频系列| 亚洲一区二区精品3399| 极品少妇一区二区| 99视频在线观看一区三区| 欧美日韩一区在线观看| 欧美精品一区二区三区在线| 国产精品青草综合久久久久99| 亚洲国产一二三| 国产精品一区三区| 欧美亚洲一区三区| 久久久99久久精品欧美| 亚洲精品国产精品乱码不99 | 中文字幕va一区二区三区| 亚洲一二三四久久| 九九精品一区二区| 91久久精品日日躁夜夜躁欧美| 日韩女同互慰一区二区| 亚洲欧美另类综合偷拍| 日韩高清在线观看| 91丨九色丨黑人外教| 欧美xxxxxxxxx| 亚洲欧美一区二区三区国产精品 | 一区二区免费视频| 国产一区二区三区久久悠悠色av| 91国偷自产一区二区使用方法| 精品久久久久久久久久久久包黑料| 一区二区三区在线视频免费观看| 国产美女视频一区| 911精品国产一区二区在线| 中文字幕一区二区三区四区不卡 | 欧美三区免费完整视频在线观看| 久久综合九色综合97_久久久| 伊人婷婷欧美激情| 粉嫩在线一区二区三区视频| 日韩一区二区免费高清| 亚洲综合成人在线视频| av日韩在线网站| 久久久精品2019中文字幕之3| 天堂久久一区二区三区| 欧美亚日韩国产aⅴ精品中极品| 国产精品午夜免费| 国产福利91精品一区二区三区| 91精品欧美久久久久久动漫| 亚洲综合色婷婷| 91色.com| 亚洲欧美在线观看| 成人毛片老司机大片| 久久免费电影网| 久久国产视频网| 日韩视频免费观看高清完整版| 亚洲在线成人精品| 在线观看成人小视频| 综合久久综合久久| av中文字幕一区| 国产精品污污网站在线观看| 国产成人无遮挡在线视频| 精品日韩av一区二区| 麻豆国产精品777777在线| 欧美高清www午色夜在线视频| 亚洲自拍偷拍欧美| 欧美性色黄大片| 亚洲一区二区三区中文字幕在线| 99久久国产综合精品女不卡| 国产精品拍天天在线| 成人毛片视频在线观看| 国产精品久久久久久一区二区三区 | 一区二区免费看| 在线亚洲+欧美+日本专区| 一区二区日韩av| 欧美在线观看视频一区二区| 亚洲国产精品久久艾草纯爱| 欧美日韩久久久久久| 天堂影院一区二区| 日韩欧美美女一区二区三区| 久久福利视频一区二区| 久久精品视频一区二区| 成人精品国产一区二区4080| 自拍偷拍国产精品| 在线视频国内一区二区| 亚洲高清在线精品| 欧美一级理论片| 国产在线视视频有精品| 国产精品欧美综合在线| 色播五月激情综合网| 婷婷开心久久网| 欧美成人三级在线| 国产69精品久久久久777| 亚洲你懂的在线视频| 欧美精品乱码久久久久久| 免费观看一级欧美片| 久久久av毛片精品| 91免费版pro下载短视频| 亚洲成人av一区| 亚洲精品在线三区| 91尤物视频在线观看| 日产精品久久久久久久性色| 精品第一国产综合精品aⅴ| 成人毛片在线观看| 午夜精品免费在线| 久久蜜桃av一区精品变态类天堂 | 欧美成人三级电影在线| 风间由美一区二区av101| 亚洲一区在线观看免费| 91精品国产综合久久久蜜臀粉嫩 | 日韩欧美综合一区| 成人动漫一区二区三区| 婷婷成人综合网| 国产精品婷婷午夜在线观看| 精品视频123区在线观看| 国产乱码精品一品二品| 亚洲精选视频免费看| 精品免费视频一区二区| 本田岬高潮一区二区三区| 天天综合日日夜夜精品| 久久精品一区二区三区不卡 | 综合色天天鬼久久鬼色| 91精品国产91久久久久久最新毛片| 国产成人综合精品三级| 亚洲高清一区二区三区| 国产精品日韩精品欧美在线| 欧美一区二区不卡视频| 色综合久久综合网| 国产在线精品视频| 天堂影院一区二区| 亚洲美女免费视频| 久久久久久免费毛片精品|