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

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

?? jcapistd.c

?? DigitalImageProcessing_base_on_Matlab 基于Matlab的數字圖像處理
?? 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;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜久久久久久久久| 国产精品福利在线播放| 日韩有码一区二区三区| 欧美日本一区二区三区四区| 成人午夜激情在线| 亚洲三级小视频| 欧美性猛交xxxx黑人交| 首页亚洲欧美制服丝腿| 欧美大片免费久久精品三p| 精品亚洲国产成人av制服丝袜| 日韩欧美一二三四区| 国产精品自拍网站| 国产精品美女www爽爽爽| 91在线看国产| 图片区小说区国产精品视频| 日韩欧美色电影| 成人av电影免费观看| 亚洲成人黄色小说| 精品88久久久久88久久久| 国产成人精品免费网站| 亚洲国产精品一区二区久久| 日韩女优av电影在线观看| 成人一区二区三区中文字幕| 一区二区不卡在线视频 午夜欧美不卡在| 91无套直看片红桃| 日韩高清不卡在线| 国产欧美久久久精品影院| 色婷婷综合久久| 日本91福利区| 国产精品国产三级国产aⅴ中文| 欧美亚洲另类激情小说| 国产专区欧美精品| 亚洲一区二区三区中文字幕| 久久在线免费观看| 91网上在线视频| 久99久精品视频免费观看| 亚洲欧洲美洲综合色网| 日韩免费高清av| 91老师片黄在线观看| 蜜桃视频在线一区| 亚洲美女屁股眼交3| 欧美成va人片在线观看| 一本色道久久综合亚洲精品按摩| 精品一区二区免费| 亚洲成人1区2区| 国产精品成人午夜| 精品av综合导航| 欧美日韩国产电影| 91视频免费观看| 国产精品一区二区在线观看不卡 | 国产日韩欧美激情| 欧美人与性动xxxx| 色综合久久天天综合网| 国产精品中文字幕日韩精品 | 日韩在线一区二区三区| 国产精品对白交换视频| 久久久久国产精品麻豆| 日韩一区二区电影| 国产夜色精品一区二区av| 欧美综合色免费| 波多野结衣一区二区三区| 狂野欧美性猛交blacked| 亚洲bt欧美bt精品777| 樱花影视一区二区| 日韩美女视频一区| 国产精品视频第一区| 久久精品夜夜夜夜久久| 精品久久99ma| 欧美成人video| 精品成人佐山爱一区二区| 欧美大白屁股肥臀xxxxxx| 91精品国产综合久久精品麻豆| 色88888久久久久久影院野外| 成人av片在线观看| av亚洲产国偷v产偷v自拍| 国产suv精品一区二区6| 国产不卡视频一区二区三区| 成人夜色视频网站在线观看| 从欧美一区二区三区| 成人伦理片在线| 久久久99精品免费观看不卡| 久久免费电影网| 欧美高清在线一区二区| 中文字幕在线观看不卡视频| 成人免费一区二区三区在线观看| 亚洲日本在线a| 一区二区免费看| 五月天国产精品| 六月丁香婷婷久久| 国产在线不卡一卡二卡三卡四卡| 国产伦精品一区二区三区免费迷| 国产精品538一区二区在线| 成人av网站在线观看免费| 91视频国产观看| 欧美精品在线观看一区二区| 欧美一卡2卡3卡4卡| 久久综合色鬼综合色| 欧美国产成人在线| 亚洲午夜久久久久久久久电影网| 亚洲成a人v欧美综合天堂下载 | 亚洲手机成人高清视频| 亚洲狼人国产精品| 日韩综合小视频| 国产成人在线网站| 在线免费精品视频| 欧美一区二区在线看| 久久久久久电影| 亚洲一区二区高清| 国产美女精品一区二区三区| 91亚洲永久精品| 日韩欧美视频一区| 亚洲免费看黄网站| 欧美一区二视频| 国产精品美女一区二区| 亚洲第一电影网| 丰满亚洲少妇av| 337p亚洲精品色噜噜噜| 国产视频一区在线观看| 亚洲一区在线观看免费观看电影高清| 免费成人av资源网| 91麻豆免费看| 欧美成人a在线| 洋洋av久久久久久久一区| 精品一二三四区| 欧美天堂一区二区三区| 国产日韩欧美综合一区| 偷窥少妇高潮呻吟av久久免费| 国产激情精品久久久第一区二区| 精品视频在线免费看| 国产丝袜美腿一区二区三区| 日韩不卡一区二区三区| 色婷婷综合在线| 精品国产一区二区三区av性色 | 日本电影亚洲天堂一区| 久久久久久综合| 天天av天天翘天天综合网| 成人av免费在线播放| 2021久久国产精品不只是精品| 亚洲午夜精品久久久久久久久| 粉嫩一区二区三区在线看| 日韩午夜在线观看视频| 亚洲成人精品一区| 91麻豆精品秘密| 国产精品色婷婷久久58| 国产一区二区三区日韩| 欧美电视剧免费观看| 亚洲国产乱码最新视频| 91天堂素人约啪| 日本一区二区高清| 韩国一区二区在线观看| 在线观看91av| 一区二区三区波多野结衣在线观看 | 一区二区三区在线免费观看 | 一区二区高清视频在线观看| 99re热这里只有精品免费视频| 国产一区二区毛片| 精品1区2区3区| 亚洲一区在线观看免费 | 国产成人免费网站| 精品国产一区二区三区久久久蜜月 | 亚洲国产综合色| 日本道精品一区二区三区| 日韩一区中文字幕| 色综合色综合色综合| 亚洲视频狠狠干| 色一情一伦一子一伦一区| 亚洲精品乱码久久久久久久久 | 亚洲欧美一区二区三区国产精品| 成人av影院在线| 中文字幕一区二区三| bt7086福利一区国产| 中文字幕视频一区二区三区久| 成人性生交大片免费看视频在线| 国产欧美日韩不卡| 成人免费av在线| 亚洲精品视频免费看| 欧美伊人久久久久久久久影院 | 色综合激情五月| 亚洲成人av在线电影| 日韩精品自拍偷拍| 国产精品资源站在线| 国产精品成人免费在线| 91福利在线观看| 日韩激情av在线| 久久综合资源网| a美女胸又www黄视频久久| 一区二区三区中文在线| 精品视频免费看| 激情综合色综合久久| 国产精品久久久久久福利一牛影视 | 日韩专区中文字幕一区二区| 日韩欧美精品在线视频| 成人中文字幕电影| 一区二区三区国产精华| 日韩一区二区视频在线观看| 国产一区二区在线影院| 亚洲摸摸操操av| 欧美疯狂性受xxxxx喷水图片| 国产麻豆精品久久一二三| 亚洲精品一卡二卡|