亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产麻豆视频一区| 高清免费成人av| 欧美三级三级三级| 高清不卡一二三区| 日韩精品在线看片z| 日韩精彩视频在线观看| 欧美蜜桃一区二区三区 | 日韩精品一区二区三区中文不卡 | 欧美理论电影在线| 亚洲国产成人高清精品| 在线观看av一区| 一个色妞综合视频在线观看| 91蜜桃在线观看| 亚洲欧美日韩久久精品| 99国产精品久| 亚洲欧美日韩国产手机在线| av中文字幕亚洲| 亚洲乱码一区二区三区在线观看| 91在线无精精品入口| 亚洲人快播电影网| 日本道精品一区二区三区 | 日韩毛片视频在线看| 99久久精品国产导航| 亚洲人成影院在线观看| 97精品国产露脸对白| 亚洲精品第1页| 欧美日韩一区二区三区视频| 日本美女一区二区| 精品国产伦一区二区三区观看方式| 经典三级一区二区| 国产精品嫩草影院av蜜臀| 99久久免费国产| 亚洲一区在线播放| 欧美一卡二卡三卡| 日本美女一区二区| 综合激情网...| 日本一区二区三区在线观看| 欧美成人一级视频| 3d成人h动漫网站入口| 蜜臀av性久久久久av蜜臀妖精| 日韩欧美成人激情| 国产成a人无v码亚洲福利| 久久天天做天天爱综合色| 精品亚洲porn| 国产精品电影一区二区三区| 欧美色爱综合网| 奇米888四色在线精品| 久久久99精品久久| 色94色欧美sute亚洲线路一久| 视频一区免费在线观看| 久久亚洲综合av| 国产黑丝在线一区二区三区| 亚洲精品中文在线观看| 欧美一区二区不卡视频| 国产成人在线视频网站| 亚洲最大色网站| 精品黑人一区二区三区久久 | 亚洲欧洲精品天堂一级 | 欧美美女视频在线观看| 久久99国产精品成人| 亚洲欧洲av在线| 91精品国产综合久久精品app| 国产一区二区精品久久91| 亚洲欧美日韩国产手机在线 | 欧美一区二区三区免费观看视频| 成人性色生活片免费看爆迷你毛片| 亚洲国产视频在线| 国产视频911| 欧美日韩免费视频| 国产成人8x视频一区二区| 亚洲va欧美va人人爽午夜| 国产欧美日韩激情| 欧美人妇做爰xxxⅹ性高电影| 从欧美一区二区三区| 日韩电影在线观看电影| 中文字幕在线不卡一区| 日韩欧美在线一区二区三区| 91色婷婷久久久久合中文| 久久国产免费看| 一区二区三区美女视频| 久久久美女艺术照精彩视频福利播放| 在线视频一区二区免费| 国产一区二区不卡| 亚洲高清不卡在线| 国产精品女主播av| 精品免费国产二区三区 | 豆国产96在线|亚洲| 五月天网站亚洲| 国产精品美女一区二区在线观看| 日韩午夜小视频| 欧美午夜宅男影院| 波多野结衣在线aⅴ中文字幕不卡| 蜜桃av一区二区三区电影| 亚洲乱码国产乱码精品精的特点| 久久久久久久网| 日韩欧美精品在线视频| 欧美视频一区二区在线观看| fc2成人免费人成在线观看播放 | 日本aⅴ免费视频一区二区三区| 日韩一区欧美小说| 精品国精品国产尤物美女| 欧美老肥妇做.爰bbww| 91女厕偷拍女厕偷拍高清| 九九久久精品视频| 婷婷丁香久久五月婷婷| 亚洲黄色录像片| 国产精品色眯眯| 欧美精品一区二区高清在线观看 | 色综合欧美在线| 成人午夜私人影院| 国产精品亚洲人在线观看| 捆绑调教美女网站视频一区| 日韩在线播放一区二区| 亚洲成人综合视频| 亚洲在线成人精品| 夜夜精品视频一区二区| 亚洲欧洲中文日韩久久av乱码| 国产精品成人免费在线| 中文字幕第一区| 亚洲国产精品ⅴa在线观看| 国产欧美一区二区精品性色超碰| 久久影院视频免费| 精品国精品国产| 2023国产精品视频| ww亚洲ww在线观看国产| 久久在线观看免费| 久久精品亚洲精品国产欧美| 337p日本欧洲亚洲大胆精品| 亚洲精品一区二区三区精华液| www久久久久| 久久久亚洲精华液精华液精华液| 久久久久久久久99精品| 久久久欧美精品sm网站| 国产人成亚洲第一网站在线播放| 国产色产综合色产在线视频| 国产日韩精品一区二区三区在线| 亚洲国产精品99久久久久久久久| 国产精品久久久久久亚洲毛片| 国产精品国产精品国产专区不蜜| 国产精品久久网站| 自拍视频在线观看一区二区| 亚洲视频在线观看一区| 亚洲综合在线视频| 天天影视涩香欲综合网| 日产国产高清一区二区三区 | 午夜影院久久久| 日韩电影免费一区| 蜜臀精品一区二区三区在线观看| 久久精品免费观看| 国产精品99久久久久久似苏梦涵 | 极品少妇xxxx精品少妇| 国产麻豆成人精品| 成人av电影免费在线播放| 91免费版在线看| 欧美日韩精品福利| 日韩免费视频线观看| 国产肉丝袜一区二区| 中文字幕一区二| 亚洲午夜在线观看视频在线| 奇米影视一区二区三区| 国产成人aaa| 色婷婷精品大在线视频| 91精品午夜视频| 久久嫩草精品久久久精品| 国产精品国产自产拍高清av王其 | 蜜桃av一区二区在线观看| 国产精品白丝jk黑袜喷水| 91麻豆免费看片| 69堂成人精品免费视频| 久久这里只有精品6| 亚洲品质自拍视频| 日韩精品视频网站| 福利一区福利二区| 精品视频1区2区3区| 久久综合狠狠综合久久综合88 | 亚洲乱码精品一二三四区日韩在线 | 日本一区二区动态图| 亚洲一区二区欧美日韩| 久久99精品国产麻豆婷婷| 成人精品视频一区二区三区尤物| 91久久线看在观草草青青| 日韩一级高清毛片| 国产精品蜜臀av| 日本在线不卡视频一二三区| 成人sese在线| 欧美一区二区三区免费大片| 国产精品久久久久aaaa樱花 | 另类小说综合欧美亚洲| 91同城在线观看| 日韩精品一区二区三区中文精品| 日韩一区有码在线| 久久精品久久99精品久久| 波波电影院一区二区三区| 日韩三级中文字幕| 亚洲男人的天堂网| 久久精品久久精品| 欧美性色综合网| 国产日韩精品一区二区三区| 偷窥少妇高潮呻吟av久久免费| 国产成人av网站|