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

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

?? libmng_jpeg.c

?? 一款最完整的工業組態軟源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* ************************************************************************** */
/* *             For conditions of distribution and use,                    * */
/* *                see copyright notice in libmng.h                        * */
/* ************************************************************************** */
/* *                                                                        * */
/* * project   : libmng                                                     * */
/* * file      : libmng_jpeg.c             copyright (c) 2000-2004 G.Juyn   * */
/* * version   : 1.0.8                                                      * */
/* *                                                                        * */
/* * purpose   : JPEG library interface (implementation)                    * */
/* *                                                                        * */
/* * author    : G.Juyn                                                     * */
/* *                                                                        * */
/* * comment   : implementation of the JPEG library interface               * */
/* *                                                                        * */
/* * changes   : 0.5.1 - 05/08/2000 - G.Juyn                                * */
/* *             - changed strict-ANSI stuff                                * */
/* *                                                                        * */
/* *             0.5.2 - 05/22/2000 - G.Juyn                                * */
/* *             - implemented all the JNG routines                         * */
/* *                                                                        * */
/* *             0.5.3 - 06/17/2000 - G.Juyn                                * */
/* *             - added tracing of JPEG calls                              * */
/* *             0.5.3 - 06/24/2000 - G.Juyn                                * */
/* *             - fixed inclusion of IJG read/write code                   * */
/* *             0.5.3 - 06/29/2000 - G.Juyn                                * */
/* *             - fixed some 64-bit warnings                               * */
/* *                                                                        * */
/* *             0.9.2 - 08/05/2000 - G.Juyn                                * */
/* *             - changed file-prefixes                                    * */
/* *                                                                        * */
/* *             0.9.3 - 10/16/2000 - G.Juyn                                * */
/* *             - added support for JDAA                                   * */
/* *                                                                        * */
/* *             1.0.1 - 04/19/2001 - G.Juyn                                * */
/* *             - added export of JPEG functions for DLL                   * */
/* *             1.0.1 - 04/22/2001 - G.Juyn                                * */
/* *             - fixed memory-leaks (Thanks Gregg!)                       * */
/* *                                                                        * */
/* *             1.0.4 - 06/22/2002 - G.Juyn                                * */
/* *             - B526138 - returned IJGSRC6B calling convention to        * */
/* *               default for MSVC                                         * */
/* *                                                                        * */
/* *             1.0.5 - 24/02/2003 - G.Juyn                                * */
/* *             - B683152 - libjpeg suspension not always honored correctly* */
/* *                                                                        * */
/* *             1.0.6 - 03/04/2003 - G.Juyn                                * */
/* *             - fixed some compiler-warnings                             * */
/* *                                                                        * */
/* *             1.0.8 - 08/01/2004 - G.Juyn                                * */
/* *             - added support for 3+byte pixelsize for JPEG's            * */
/* *                                                                        * */
/* ************************************************************************** */

#include "libmng.h"
#include "libmng_data.h"
#include "libmng_error.h"
#include "libmng_trace.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#include "libmng_memory.h"
#include "libmng_pixels.h"
#include "libmng_jpeg.h"

#if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)
#pragma option -A                      /* force ANSI-C */
#endif

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

#if defined(MNG_INCLUDE_JNG) && defined(MNG_INCLUDE_DISPLAY_PROCS)

/* ************************************************************************** */
/* *                                                                        * */
/* * Local IJG callback routines (source-manager, error-manager and such)   * */
/* *                                                                        * */
/* ************************************************************************** */

#ifdef MNG_INCLUDE_IJG6B

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

#ifdef MNG_INCLUDE_JNG_READ
#ifdef MNG_DEFINE_JPEG_STDCALL
void MNG_DECL mng_init_source (j_decompress_ptr cinfo)
#else
void mng_init_source (j_decompress_ptr cinfo)
#endif
{
  return;                              /* nothing needed */
}
#endif /* MNG_INCLUDE_JNG_READ */

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

#ifdef MNG_INCLUDE_JNG_READ
#ifdef MNG_DEFINE_JPEG_STDCALL
boolean MNG_DECL mng_fill_input_buffer (j_decompress_ptr cinfo)
#else
boolean mng_fill_input_buffer (j_decompress_ptr cinfo)
#endif
{
  return FALSE;                        /* force IJG routine to return to caller */
}
#endif /* MNG_INCLUDE_JNG_READ */

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

#ifdef MNG_INCLUDE_JNG_READ
#ifdef MNG_DEFINE_JPEG_STDCALL
void MNG_DECL mng_skip_input_data (j_decompress_ptr cinfo, long num_bytes)
#else
void mng_skip_input_data (j_decompress_ptr cinfo, long num_bytes)
#endif
{
  if (num_bytes > 0)                   /* ignore fony calls */
  {                                    /* address my generic structure */
    mng_datap pData = (mng_datap)cinfo->client_data;
                                       /* address source manager */
    mngjpeg_sourcep pSrc = pData->pJPEGdinfo->src;
                                       /* problem scenario ? */
    if (pSrc->bytes_in_buffer < (size_t)num_bytes)
    {                                  /* tell the boss we need to skip some data! */
      pData->iJPEGtoskip = (mng_uint32)((size_t)num_bytes - pSrc->bytes_in_buffer);

      pSrc->bytes_in_buffer = 0;       /* let the JPEG lib suspend */
      pSrc->next_input_byte = MNG_NULL;
    }
    else
    {                                  /* simply advance in the buffer */
      pSrc->bytes_in_buffer -= num_bytes;
      pSrc->next_input_byte += num_bytes;
    }
  }

  return;
}
#endif /* MNG_INCLUDE_JNG_READ */

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

#ifdef MNG_INCLUDE_JNG_READ
#ifdef MNG_DEFINE_JPEG_STDCALL
void MNG_DECL mng_skip_input_data2 (j_decompress_ptr cinfo, long num_bytes)
#else
void mng_skip_input_data2 (j_decompress_ptr cinfo, long num_bytes)
#endif
{
  if (num_bytes > 0)                   /* ignore fony calls */
  {                                    /* address my generic structure */
    mng_datap pData = (mng_datap)cinfo->client_data;
                                       /* address source manager */
    mngjpeg_sourcep pSrc = pData->pJPEGdinfo2->src;
                                       /* problem scenario ? */
    if (pSrc->bytes_in_buffer < (size_t)num_bytes)
    {                                  /* tell the boss we need to skip some data! */
      pData->iJPEGtoskip2 = (mng_uint32)((size_t)num_bytes - pSrc->bytes_in_buffer);

      pSrc->bytes_in_buffer = 0;       /* let the JPEG lib suspend */
      pSrc->next_input_byte = MNG_NULL;
    }
    else
    {                                  /* simply advance in the buffer */
      pSrc->bytes_in_buffer -= num_bytes;
      pSrc->next_input_byte += num_bytes;
    }
  }

  return;
}
#endif /* MNG_INCLUDE_JNG_READ */

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

#ifdef MNG_INCLUDE_JNG_READ
#ifdef MNG_DEFINE_JPEG_STDCALL
void MNG_DECL mng_term_source (j_decompress_ptr cinfo)
#else
void mng_term_source (j_decompress_ptr cinfo)
#endif
{
  return;                              /* nothing needed */
}
#endif /* MNG_INCLUDE_JNG_READ */

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

#ifdef MNG_USE_SETJMP
#ifdef MNG_DEFINE_JPEG_STDCALL
void MNG_DECL mng_error_exit (j_common_ptr cinfo)
#else
void mng_error_exit (j_common_ptr cinfo)
#endif
{                                      /* address my generic structure */
  mng_datap pData = (mng_datap)cinfo->client_data;

#ifdef MNG_ERROR_TELLTALE              /* fill the message text ??? */
  (*cinfo->err->output_message) (cinfo);
#endif
                                       /* return to the point of no return... */
  longjmp (pData->sErrorbuf, cinfo->err->msg_code);
}
#endif /* MNG_USE_SETJMP */

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

#ifdef MNG_USE_SETJMP
#ifdef MNG_DEFINE_JPEG_STDCALL
void MNG_DECL mng_output_message (j_common_ptr cinfo)
#else
void mng_output_message (j_common_ptr cinfo)
#endif
{
  return;                              /* just do nothing ! */
}
#endif /* MNG_USE_SETJMP */

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

#endif /* MNG_INCLUDE_IJG6B */

/* ************************************************************************** */
/* *                                                                        * */
/* * Global JPEG routines                                                   * */
/* *                                                                        * */
/* ************************************************************************** */

mng_retcode mngjpeg_initialize (mng_datap pData)
{
#ifdef MNG_SUPPORT_TRACE
  MNG_TRACE (pData, MNG_FN_JPEG_INITIALIZE, MNG_LC_START)
#endif
                                       /* allocate space for JPEG structures if necessary */
#ifdef MNG_INCLUDE_JNG_READ
  if (pData->pJPEGderr   == MNG_NULL)
    MNG_ALLOC (pData, pData->pJPEGderr,   sizeof (mngjpeg_error ))
  if (pData->pJPEGdsrc   == MNG_NULL)
    MNG_ALLOC (pData, pData->pJPEGdsrc,   sizeof (mngjpeg_source))
  if (pData->pJPEGdinfo  == MNG_NULL)
    MNG_ALLOC (pData, pData->pJPEGdinfo,  sizeof (mngjpeg_decomp))
                                       /* enable reverse addressing */
  pData->pJPEGdinfo->client_data  = pData;

  if (pData->pJPEGderr2  == MNG_NULL)
    MNG_ALLOC (pData, pData->pJPEGderr2,  sizeof (mngjpeg_error ))
  if (pData->pJPEGdsrc2  == MNG_NULL)
    MNG_ALLOC (pData, pData->pJPEGdsrc2,  sizeof (mngjpeg_source))
  if (pData->pJPEGdinfo2 == MNG_NULL)
    MNG_ALLOC (pData, pData->pJPEGdinfo2, sizeof (mngjpeg_decomp))
                                       /* enable reverse addressing */
  pData->pJPEGdinfo2->client_data = pData;
#endif

#ifdef MNG_INCLUDE_JNG_WRITE
  if (pData->pJPEGcerr  == MNG_NULL)
    MNG_ALLOC (pData, pData->pJPEGcerr,  sizeof (mngjpeg_error ))
  if (pData->pJPEGcinfo == MNG_NULL)
    MNG_ALLOC (pData, pData->pJPEGcinfo, sizeof (mngjpeg_comp  ))
                                       /* enable reverse addressing */
  pData->pJPEGcinfo->client_data = pData;
#endif

  if (pData->pJPEGbuf   == MNG_NULL)   /* initialize temporary buffers */
  {
    pData->iJPEGbufmax     = MNG_JPEG_MAXBUF;
    MNG_ALLOC (pData, pData->pJPEGbuf, pData->iJPEGbufmax)
  }

  if (pData->pJPEGbuf2  == MNG_NULL) 
  {
    pData->iJPEGbufmax2    = MNG_JPEG_MAXBUF;
    MNG_ALLOC (pData, pData->pJPEGbuf2, pData->iJPEGbufmax2)
  }

  pData->pJPEGcurrent      = pData->pJPEGbuf;
  pData->iJPEGbufremain    = 0;
  pData->pJPEGrow          = MNG_NULL;
  pData->iJPEGrowlen       = 0;
  pData->iJPEGtoskip       = 0;

  pData->pJPEGcurrent2     = pData->pJPEGbuf2;
  pData->iJPEGbufremain2   = 0;
  pData->pJPEGrow2         = MNG_NULL;
  pData->iJPEGrowlen2      = 0;
  pData->iJPEGtoskip2      = 0;
                                      /* not doing anything yet ! */
  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;

  pData->iJPEGrow          = 0;        /* zero input/output lines */
  pData->iJPEGalpharow     = 0;
  pData->iJPEGrgbrow       = 0;
  pData->iJPEGdisprow      = 0;

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

  return MNG_NOERROR;
}

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

mng_retcode mngjpeg_cleanup (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_CLEANUP, 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

#ifdef MNG_INCLUDE_JNG_READ            /* still decompressing something ? */
  if (pData->bJPEGdecompress)
    jpeg_destroy_decompress (pData->pJPEGdinfo);
  if (pData->bJPEGdecompress2)
    jpeg_destroy_decompress (pData->pJPEGdinfo2);
#endif

#ifdef MNG_INCLUDE_JNG_WRITE
  if (pData->bJPEGcompress)            /* still compressing something ? */
    jpeg_destroy_compress (pData->pJPEGcinfo);
#endif

#endif /* MNG_INCLUDE_IJG6B */
                                       /* cleanup temporary buffers */
  MNG_FREE (pData, pData->pJPEGbuf2, pData->iJPEGbufmax2)
  MNG_FREE (pData, pData->pJPEGbuf,  pData->iJPEGbufmax)
                                       /* cleanup space for JPEG structures */
#ifdef MNG_INCLUDE_JNG_WRITE
  MNG_FREE (pData, pData->pJPEGcinfo,  sizeof (mngjpeg_comp  ))
  MNG_FREE (pData, pData->pJPEGcerr,   sizeof (mngjpeg_error ))
#endif

#ifdef MNG_INCLUDE_JNG_READ
  MNG_FREE (pData, pData->pJPEGdinfo,  sizeof (mngjpeg_decomp))
  MNG_FREE (pData, pData->pJPEGdsrc,   sizeof (mngjpeg_source))
  MNG_FREE (pData, pData->pJPEGderr,   sizeof (mngjpeg_error ))
  MNG_FREE (pData, pData->pJPEGdinfo2, sizeof (mngjpeg_decomp))
  MNG_FREE (pData, pData->pJPEGdsrc2,  sizeof (mngjpeg_source))
  MNG_FREE (pData, pData->pJPEGderr2,  sizeof (mngjpeg_error ))
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精彩视频一区二区三区| 成人ar影院免费观看视频| 国产精品三级久久久久三级| 欧美亚日韩国产aⅴ精品中极品| 精品一区二区日韩| 亚洲无人区一区| 国产精品久久久久久久裸模| 日韩免费福利电影在线观看| 欧美在线观看视频一区二区三区 | 蜜臀91精品一区二区三区 | 日日嗨av一区二区三区四区| 国产精品女人毛片| 26uuu国产在线精品一区二区| 欧美撒尿777hd撒尿| 91看片淫黄大片一级在线观看| 国产一区二区三区香蕉| 免费在线一区观看| 亚洲第一狼人社区| 一区二区国产盗摄色噜噜| 国产精品久久久久精k8| 久久九九全国免费| 2021中文字幕一区亚洲| 欧美va亚洲va| 欧美va天堂va视频va在线| 欧美一区二区三区四区久久| 欧美日韩国产乱码电影| 色综合天天综合在线视频| av不卡免费在线观看| 国产成人亚洲综合色影视| 国内精品伊人久久久久av影院 | 国产精品电影院| 国产亚洲精品aa午夜观看| 26uuu国产电影一区二区| 日韩色在线观看| 日韩欧美激情在线| 欧美成人综合网站| 精品国产免费人成电影在线观看四季| 在线不卡的av| 日韩一区二区三区av| 欧美一级理论片| 精品99999| 国产无人区一区二区三区| 国产视频视频一区| 亚洲欧美在线观看| 亚洲男人都懂的| 亚洲成人av一区| 免费成人美女在线观看.| 久久99久久99| 国产成人亚洲综合色影视| 成人高清免费在线播放| 色综合久久中文综合久久97| 91久久精品国产91性色tv| 精品视频资源站| 日韩丝袜情趣美女图片| 久久综合久久综合久久综合| 欧美国产综合一区二区| 国产精品麻豆欧美日韩ww| 亚洲手机成人高清视频| 午夜视频久久久久久| 久久99精品网久久| 成人性生交大片免费看视频在线 | 精品久久久久一区二区国产| 精品福利av导航| 中国av一区二区三区| 亚洲一区在线观看视频| 免费成人在线播放| 国产aⅴ精品一区二区三区色成熟| 91香蕉国产在线观看软件| 欧美日韩一区国产| 精品国产凹凸成av人网站| 欧美国产日韩a欧美在线观看 | 综合精品久久久| 亚洲成av人片| 久久成人av少妇免费| 99国产精品国产精品毛片| 欧美精品在欧美一区二区少妇| 精品国产亚洲一区二区三区在线观看| 国产三级三级三级精品8ⅰ区| 亚洲同性同志一二三专区| 五月婷婷久久丁香| 国产成人欧美日韩在线电影| 欧美日韩国产三级| 欧美国产亚洲另类动漫| 午夜久久久久久电影| 国产aⅴ精品一区二区三区色成熟| 欧美系列一区二区| 久久久亚洲精品石原莉奈| 亚洲午夜一区二区三区| 精品一区二区久久| 在线观看一区不卡| 久久精品日韩一区二区三区| 亚洲午夜精品网| 国产高清精品网站| 91精品国产麻豆国产自产在线 | 日韩**一区毛片| 97se亚洲国产综合自在线观| 欧美va天堂va视频va在线| 一区二区三区欧美| 成人av在线播放网站| 久久久久久久久伊人| 日本中文字幕一区二区有限公司| 成人综合婷婷国产精品久久| 欧美一级欧美三级在线观看 | 热久久一区二区| 色哟哟一区二区| 国产女人aaa级久久久级| 青青草精品视频| 欧美日韩专区在线| 亚洲激情图片小说视频| 成人午夜精品在线| 久久先锋资源网| 日本美女一区二区三区| 欧美日本一区二区三区| 亚洲精品久久久久久国产精华液| 成人性生交大合| 欧美激情在线看| 国产精品1区2区3区| 精品乱人伦小说| 久久精品99久久久| 欧美不卡一区二区三区| 爽好久久久欧美精品| 欧美三级日韩在线| 亚洲小少妇裸体bbw| 欧美影院一区二区| 亚洲电影在线播放| 欧美日免费三级在线| 亚洲国产精品久久一线不卡| 91黄色激情网站| 夜夜嗨av一区二区三区网页| 色综合天天综合在线视频| 亚洲欧美激情视频在线观看一区二区三区 | 中文字幕亚洲不卡| 成人污污视频在线观看| 欧美极品美女视频| 不卡视频免费播放| 亚洲免费在线视频| 欧洲视频一区二区| 亚洲第一综合色| 欧美一区二区视频在线观看| 日韩—二三区免费观看av| 日韩三区在线观看| 久久99九九99精品| 国产视频一区在线观看| 国产成a人亚洲精品| 国产精品国产三级国产有无不卡| 99精品桃花视频在线观看| 一区二区三区在线免费播放| 欧美日韩成人一区二区| 日韩电影在线免费| 久久综合久久鬼色中文字| 成人性视频免费网站| 亚洲欧美aⅴ...| 欧美日韩久久一区| 国内欧美视频一区二区| 国产精品久久久久久久午夜片| 日本丶国产丶欧美色综合| 午夜精品久久久久久久99樱桃 | 日韩免费高清av| 粉嫩嫩av羞羞动漫久久久| 亚洲免费观看高清完整版在线观看熊 | 成人中文字幕电影| 亚洲精品一卡二卡| 91精品国产色综合久久久蜜香臀| 韩国欧美一区二区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 在线视频国产一区| 老司机免费视频一区二区三区| 亚洲国产精品av| 欧美中文字幕一区二区三区 | 国产精品天天摸av网| 欧美在线播放高清精品| 久久成人麻豆午夜电影| 亚洲欧洲成人精品av97| 欧美人xxxx| 不卡电影一区二区三区| 日韩成人精品在线观看| 欧美极品少妇xxxxⅹ高跟鞋| 欧美图区在线视频| 国产精品一区一区三区| 亚洲国产中文字幕| 国产欧美日韩综合| 91麻豆精品国产91久久久使用方法| 国产成人免费视频精品含羞草妖精| 亚洲尤物在线视频观看| 国产亚洲精品aa| 在线成人av网站| 99久久精品免费看| 狠狠色丁香久久婷婷综合丁香| 一区二区三区日本| 国产欧美精品国产国产专区| 正在播放一区二区| 色综合一区二区三区| 国产剧情一区二区三区| 视频一区欧美日韩| 亚洲免费av网站| 国产午夜久久久久| 日韩一区二区电影| 欧美性受xxxx| jizz一区二区| 国产剧情一区在线|