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

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

?? jcapistd.c

?? 這是JPEG解碼、編碼的源代碼
?? C
字號:
/*
 * jcapistd.c
 *
 * Copyright (C) 1994-1996, Thomas G. Lane.
 * This file is part of the Independent JPEG Group's software.
 * For conditions of distribution and use, see the accompanying README file.
 *
 * This file contains application interface code for the compression half
 * of the JPEG library.  These are the "standard" API routines that are
 * used in the normal full-compression case.  They are not used by a
 * transcoding-only application.  Note that if an application links in
 * jpeg_start_compress, it will end up linking in the entire compressor.
 * We thus must separate this file from jcapimin.c to avoid linking the
 * whole compression library into a transcoder.
 */

#define JPEG_INTERNALS
#include "jinclude.h"
#include "jpeglib.h"


/*
 * Compression initialization.
 * Before calling this, all parameters and a data destination must be set up.
 *
 * We require a write_all_tables parameter as a failsafe check when writing
 * multiple datastreams from the same compression object.  Since prior runs
 * will have left all the tables marked sent_table=TRUE, a subsequent run
 * would emit an abbreviated stream (no tables) by default.  This may be what
 * is wanted, but for safety's sake it should not be the default behavior:
 * programmers should have to make a deliberate choice to emit abbreviated
 * images.  Therefore the documentation and examples should encourage people
 * to pass write_all_tables=TRUE; then it will take active thought to do the
 * wrong thing.
 */

GLOBAL(void)
jpeg_start_compress (j_compress_ptr cinfo, boolean write_all_tables)
{
  if (cinfo->global_state != CSTATE_START)
    ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);

  if (write_all_tables)
    jpeg_suppress_tables(cinfo, FALSE);	/* mark all tables to be written */

  /* (Re)initialize error mgr and destination modules */
  (*cinfo->err->reset_error_mgr) ((j_common_ptr) cinfo);
  (*cinfo->dest->init_destination) (cinfo);
  /* Perform master selection of active modules */
  jinit_compress_master(cinfo);
  /* Set up for the first pass */
  (*cinfo->master->prepare_for_pass) (cinfo);
  /* Ready for application to drive first pass through jpeg_write_scanlines
   * or jpeg_write_raw_data.
   */
  cinfo->next_scanline = 0;
  cinfo->global_state = (cinfo->raw_data_in ? CSTATE_RAW_OK : CSTATE_SCANNING);
}


/*
 * Write some scanlines of data to the JPEG compressor.
 *
 * The return value will be the number of lines actually written.
 * This should be less than the supplied num_lines only in case that
 * the data destination module has requested suspension of the compressor,
 * or if more than image_height scanlines are passed in.
 *
 * Note: we warn about excess calls to jpeg_write_scanlines() since
 * this likely signals an application programmer error.  However,
 * excess scanlines passed in the last valid call are *silently* ignored,
 * so that the application need not adjust num_lines for end-of-image
 * when using a multiple-scanline buffer.
 */

GLOBAL(JDIMENSION)
jpeg_write_scanlines (j_compress_ptr cinfo, JSAMPARRAY scanlines,
		      JDIMENSION num_lines)
{
  JDIMENSION row_ctr, rows_left;

  if (cinfo->global_state != CSTATE_SCANNING)
    ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
  if (cinfo->next_scanline >= cinfo->image_height)
    WARNMS(cinfo, JWRN_TOO_MUCH_DATA);

  /* Call progress monitor hook if present */
  if (cinfo->progress != NULL) {
    cinfo->progress->pass_counter = (long) cinfo->next_scanline;
    cinfo->progress->pass_limit = (long) cinfo->image_height;
    (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo);
  }

  /* Give master control module another chance if this is first call to
   * jpeg_write_scanlines.  This lets output of the frame/scan headers be
   * delayed so that application can write COM, etc, markers between
   * jpeg_start_compress and jpeg_write_scanlines.
   */
  if (cinfo->master->call_pass_startup)
    (*cinfo->master->pass_startup) (cinfo);

  /* Ignore any extra scanlines at bottom of image. */
  rows_left = cinfo->image_height - cinfo->next_scanline;
  if (num_lines > rows_left)
    num_lines = rows_left;

  row_ctr = 0;
  (*cinfo->main->process_data) (cinfo, scanlines, &row_ctr, num_lines);
  cinfo->next_scanline += row_ctr;
  return row_ctr;
}


/*
 * Alternate entry point to write raw data.
 * Processes exactly one iMCU row per call, unless suspended.
 */

GLOBAL(JDIMENSION)
jpeg_write_raw_data (j_compress_ptr cinfo, JSAMPIMAGE data,
		     JDIMENSION num_lines)
{
  JDIMENSION lines_per_iMCU_row;

  if (cinfo->global_state != CSTATE_RAW_OK)
    ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
  if (cinfo->next_scanline >= cinfo->image_height) {
    WARNMS(cinfo, JWRN_TOO_MUCH_DATA);
    return 0;
  }

  /* Call progress monitor hook if present */
  if (cinfo->progress != NULL) {
    cinfo->progress->pass_counter = (long) cinfo->next_scanline;
    cinfo->progress->pass_limit = (long) cinfo->image_height;
    (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo);
  }

  /* Give master control module another chance if this is first call to
   * jpeg_write_raw_data.  This lets output of the frame/scan headers be
   * delayed so that application can write COM, etc, markers between
   * jpeg_start_compress and jpeg_write_raw_data.
   */
  if (cinfo->master->call_pass_startup)
    (*cinfo->master->pass_startup) (cinfo);

  /* Verify that at least one iMCU row has been passed. */
  lines_per_iMCU_row = cinfo->max_v_samp_factor * DCTSIZE;
  if (num_lines < lines_per_iMCU_row)
    ERREXIT(cinfo, JERR_BUFFER_SIZE);

  /* Directly compress the row. */
  if (! (*cinfo->coef->compress_data) (cinfo, data)) {
    /* If compressor did not consume the whole row, suspend processing. */
    return 0;
  }

  /* OK, we processed one iMCU row. */
  cinfo->next_scanline += lines_per_iMCU_row;
  return lines_per_iMCU_row;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人综合婷婷国产精品久久蜜臀 | 欧美一区二区三区四区在线观看| 日韩欧美国产午夜精品| 国产精品盗摄一区二区三区| 三级欧美韩日大片在线看| www.欧美.com| 精品999在线播放| 午夜视频在线观看一区二区三区| 99在线视频精品| 欧美va在线播放| 亚洲成人动漫av| 日本韩国精品一区二区在线观看| 久久精品网站免费观看| 麻豆成人在线观看| 欧美性大战久久久| 亚洲欧美日韩国产另类专区| 成人一级黄色片| 日韩欧美国产一区在线观看| 图片区小说区国产精品视频| 日本精品一区二区三区高清| 中文字幕不卡在线| 国产黑丝在线一区二区三区| 日韩免费电影网站| 三级影片在线观看欧美日韩一区二区| 91国产精品成人| 亚洲欧美另类综合偷拍| 99久久99久久精品国产片果冻 | 亚洲欧美日韩系列| av午夜一区麻豆| 日日嗨av一区二区三区四区| 欧美吻胸吃奶大尺度电影 | 亚洲国产精品99久久久久久久久| 国产在线播放一区| 久久久久综合网| 国产91露脸合集magnet| 国产亚洲欧美色| 成人午夜电影久久影院| 国产精品美女一区二区| av在线一区二区| 亚洲黄网站在线观看| 欧美性大战xxxxx久久久| 午夜精品福利一区二区三区av| 精品视频免费看| 蜜桃视频在线一区| 26uuu亚洲综合色欧美| 国产成人综合在线| 亚洲欧洲中文日韩久久av乱码| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲一区二区三区自拍| 欧美精品久久99| 国产综合色产在线精品| 国产欧美综合在线| 久久网站最新地址| 91片在线免费观看| 亚洲综合视频在线观看| 日韩午夜av电影| 国产成人av影院| 一区二区三区在线看| 欧美男生操女生| 国产高清精品在线| 亚洲一区二区三区四区在线免费观看| 51午夜精品国产| 国产麻豆精品在线| 亚洲综合图片区| 精品精品国产高清一毛片一天堂| 波多野结衣欧美| 图片区小说区国产精品视频| 国产欧美va欧美不卡在线| 精品污污网站免费看| 极品美女销魂一区二区三区 | 色婷婷精品久久二区二区蜜臂av| 午夜视频久久久久久| 国产亚洲成年网址在线观看| 在线国产亚洲欧美| 国产一区二三区好的| 亚洲国产日韩一区二区| 久久久国产精华| 91麻豆精品国产| 成人动漫精品一区二区| 男人的j进女人的j一区| 亚洲精品大片www| 久久奇米777| 欧美一卡二卡在线| 99re这里都是精品| 国产精品99久久久久久似苏梦涵| 一二三四区精品视频| 国产精品免费看片| 精品免费国产二区三区| 欧美日韩一区中文字幕| 成人av影视在线观看| 精品一二三四在线| 日本不卡一二三| 亚州成人在线电影| 亚洲精品午夜久久久| 国产精品网站在线播放| 欧美精品一区二区三区久久久 | 另类小说图片综合网| 一区二区三区在线播放| 国产精品伦一区二区三级视频| 精品久久久久久久久久久久包黑料 | 国产精品原创巨作av| 日韩精品国产欧美| 一区二区三区高清| 亚洲视频一区二区在线观看| 国产日韩欧美在线一区| 久久综合九色欧美综合狠狠| 日韩色在线观看| 欧美一区二区免费观在线| 777xxx欧美| 这里是久久伊人| 欧美一二三区在线观看| 91精品国产免费| 亚洲美女区一区| 亚洲激情自拍视频| 一区二区三区日韩欧美精品| 亚洲精品中文字幕在线观看| 亚洲欧美日本韩国| 亚洲自拍偷拍av| 亚洲va欧美va国产va天堂影院| 尤物视频一区二区| 亚洲va欧美va国产va天堂影院| 婷婷综合五月天| 日本成人在线一区| 蜜臀a∨国产成人精品| 韩国av一区二区三区四区| 国产一区二区剧情av在线| 国产成人综合在线观看| 北岛玲一区二区三区四区| 91免费国产视频网站| 在线观看不卡视频| 91精品在线免费| 久久这里只有精品6| 国产精品乱码一区二三区小蝌蚪| 中文字幕在线不卡国产视频| 亚洲精品久久久蜜桃| 午夜视频一区二区三区| 久久99国产精品麻豆| 国产高清成人在线| 色94色欧美sute亚洲线路一ni| 欧美性感一区二区三区| 精品成a人在线观看| 中文成人综合网| 亚洲国产日产av| 狠狠色狠狠色综合系列| av午夜一区麻豆| 宅男噜噜噜66一区二区66| 久久精品人人爽人人爽| 亚洲精品乱码久久久久久日本蜜臀| 日韩中文字幕区一区有砖一区| 国产精品一区二区91| 日本黄色一区二区| www一区二区| 亚洲精品国产第一综合99久久 | 日本人妖一区二区| 成人av影院在线| 91精品免费在线观看| 国产精品久久久久久久蜜臀| 日韩高清一区在线| 成人黄色国产精品网站大全在线免费观看 | 精品综合免费视频观看| 99久久综合99久久综合网站| 7777女厕盗摄久久久| 国产精品视频线看| 日本不卡123| 色天使久久综合网天天| 久久日韩精品一区二区五区| 亚洲免费在线电影| 国产成人免费在线视频| 7777精品久久久大香线蕉| 亚洲免费色视频| 国产一区二区影院| 日韩限制级电影在线观看| 一区二区三区产品免费精品久久75| 国产乱人伦精品一区二区在线观看| 欧美久久久一区| 一区二区三区毛片| 91香蕉国产在线观看软件| 国产午夜精品久久久久久久| 人人爽香蕉精品| 777久久久精品| 一个色妞综合视频在线观看| 99视频超级精品| 国产午夜亚洲精品理论片色戒 | 精品国产91乱码一区二区三区| 一区二区三区四区中文字幕| 丁香婷婷综合五月| 久久九九99视频| 国产精品一区二区不卡| 久久亚洲欧美国产精品乐播| 久久激五月天综合精品| 日韩一级片在线播放| 秋霞电影网一区二区| 欧美日韩aaaaaa| 亚洲成年人影院| 欧美丰满一区二区免费视频| 亚洲第一综合色| 欧美日韩在线观看一区二区| 亚洲综合色网站| 欧美日韩国产综合一区二区三区 | 国产在线精品一区二区不卡了|