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

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

?? jpegtran.c

?? 一款最完整的工業(yè)組態(tài)軟源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
 * jpegtran.c
 *
 * Copyright (C) 1995-1997, 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 a command-line user interface for JPEG transcoding.
 * It is very similar to cjpeg.c, but provides lossless transcoding between
 * different JPEG file formats.  It also provides some lossless and sort-of-
 * lossless transformations of JPEG data.
 */

#include "cdjpeg.h"		/* Common decls for cjpeg/djpeg applications */
#include "transupp.h"		/* Support routines for jpegtran */
#include "jversion.h"		/* for version message */

#ifdef USE_CCOMMAND		/* command-line reader for Macintosh */
#ifdef __MWERKS__
#include <SIOUX.h>              /* Metrowerks needs this */
#include <console.h>		/* ... and this */
#endif
#ifdef THINK_C
#include <console.h>		/* Think declares it here */
#endif
#endif


/*
 * Argument-parsing code.
 * The switch parser is designed to be useful with DOS-style command line
 * syntax, ie, intermixed switches and file names, where only the switches
 * to the left of a given file name affect processing of that file.
 * The main program in this file doesn't actually use this capability...
 */


static const char * progname;	/* program name for error messages */
static char * outfilename;	/* for -outfile switch */
static JCOPY_OPTION copyoption;	/* -copy switch */
static jpeg_transform_info transformoption; /* image transformation options */


LOCAL(void)
usage (void)
/* complain about bad command line */
{
  fprintf(stderr, "usage: %s [switches] ", progname);
#ifdef TWO_FILE_COMMANDLINE
  fprintf(stderr, "inputfile outputfile\n");
#else
  fprintf(stderr, "[inputfile]\n");
#endif

  fprintf(stderr, "Switches (names may be abbreviated):\n");
  fprintf(stderr, "  -copy none     Copy no extra markers from source file\n");
  fprintf(stderr, "  -copy comments Copy only comment markers (default)\n");
  fprintf(stderr, "  -copy all      Copy all extra markers\n");
#ifdef ENTROPY_OPT_SUPPORTED
  fprintf(stderr, "  -optimize      Optimize Huffman table (smaller file, but slow compression)\n");
#endif
#ifdef C_PROGRESSIVE_SUPPORTED
  fprintf(stderr, "  -progressive   Create progressive JPEG file\n");
#endif
#if TRANSFORMS_SUPPORTED
  fprintf(stderr, "Switches for modifying the image:\n");
  fprintf(stderr, "  -grayscale     Reduce to grayscale (omit color data)\n");
  fprintf(stderr, "  -flip [horizontal|vertical]  Mirror image (left-right or top-bottom)\n");
  fprintf(stderr, "  -rotate [90|180|270]         Rotate image (degrees clockwise)\n");
  fprintf(stderr, "  -transpose     Transpose image\n");
  fprintf(stderr, "  -transverse    Transverse transpose image\n");
  fprintf(stderr, "  -trim          Drop non-transformable edge blocks\n");
#endif /* TRANSFORMS_SUPPORTED */
  fprintf(stderr, "Switches for advanced users:\n");
  fprintf(stderr, "  -restart N     Set restart interval in rows, or in blocks with B\n");
  fprintf(stderr, "  -maxmemory N   Maximum memory to use (in kbytes)\n");
  fprintf(stderr, "  -outfile name  Specify name for output file\n");
  fprintf(stderr, "  -verbose  or  -debug   Emit debug output\n");
  fprintf(stderr, "Switches for wizards:\n");
#ifdef C_ARITH_CODING_SUPPORTED
  fprintf(stderr, "  -arithmetic    Use arithmetic coding\n");
#endif
#ifdef C_MULTISCAN_FILES_SUPPORTED
  fprintf(stderr, "  -scans file    Create multi-scan JPEG per script file\n");
#endif
  exit(EXIT_FAILURE);
}


LOCAL(void)
select_transform (JXFORM_CODE transform)
/* Silly little routine to detect multiple transform options,
 * which we can't handle.
 */
{
#if TRANSFORMS_SUPPORTED
  if (transformoption.transform == JXFORM_NONE ||
      transformoption.transform == transform) {
    transformoption.transform = transform;
  } else {
    fprintf(stderr, "%s: can only do one image transformation at a time\n",
	    progname);
    usage();
  }
#else
  fprintf(stderr, "%s: sorry, image transformation was not compiled\n",
	  progname);
  exit(EXIT_FAILURE);
#endif
}


LOCAL(int)
parse_switches (j_compress_ptr cinfo, int argc, char **argv,
		int last_file_arg_seen, boolean for_real)
/* Parse optional switches.
 * Returns argv[] index of first file-name argument (== argc if none).
 * Any file names with indexes <= last_file_arg_seen are ignored;
 * they have presumably been processed in a previous iteration.
 * (Pass 0 for last_file_arg_seen on the first or only iteration.)
 * for_real is FALSE on the first (dummy) pass; we may skip any expensive
 * processing.
 */
{
  int argn;
  char * arg;
  boolean simple_progressive;
  char * scansarg = NULL;	/* saves -scans parm if any */

  /* Set up default JPEG parameters. */
  simple_progressive = FALSE;
  outfilename = NULL;
  copyoption = JCOPYOPT_DEFAULT;
  transformoption.transform = JXFORM_NONE;
  transformoption.trim = FALSE;
  transformoption.force_grayscale = FALSE;
  cinfo->err->trace_level = 0;

  /* Scan command line options, adjust parameters */

  for (argn = 1; argn < argc; argn++) {
    arg = argv[argn];
    if (*arg != '-') {
      /* Not a switch, must be a file name argument */
      if (argn <= last_file_arg_seen) {
	outfilename = NULL;	/* -outfile applies to just one input file */
	continue;		/* ignore this name if previously processed */
      }
      break;			/* else done parsing switches */
    }
    arg++;			/* advance past switch marker character */

    if (keymatch(arg, "arithmetic", 1)) {
      /* Use arithmetic coding. */
#ifdef C_ARITH_CODING_SUPPORTED
      cinfo->arith_code = TRUE;
#else
      fprintf(stderr, "%s: sorry, arithmetic coding not supported\n",
	      progname);
      exit(EXIT_FAILURE);
#endif

    } else if (keymatch(arg, "copy", 1)) {
      /* Select which extra markers to copy. */
      if (++argn >= argc)	/* advance to next argument */
	usage();
      if (keymatch(argv[argn], "none", 1)) {
	copyoption = JCOPYOPT_NONE;
      } else if (keymatch(argv[argn], "comments", 1)) {
	copyoption = JCOPYOPT_COMMENTS;
      } else if (keymatch(argv[argn], "all", 1)) {
	copyoption = JCOPYOPT_ALL;
      } else
	usage();

    } else if (keymatch(arg, "debug", 1) || keymatch(arg, "verbose", 1)) {
      /* Enable debug printouts. */
      /* On first -d, print version identification */
      static boolean printed_version = FALSE;

      if (! printed_version) {
	fprintf(stderr, "Independent JPEG Group's JPEGTRAN, version %s\n%s\n",
		JVERSION, JCOPYRIGHT);
	printed_version = TRUE;
      }
      cinfo->err->trace_level++;

    } else if (keymatch(arg, "flip", 1)) {
      /* Mirror left-right or top-bottom. */
      if (++argn >= argc)	/* advance to next argument */
	usage();
      if (keymatch(argv[argn], "horizontal", 1))
	select_transform(JXFORM_FLIP_H);
      else if (keymatch(argv[argn], "vertical", 1))
	select_transform(JXFORM_FLIP_V);
      else
	usage();

    } else if (keymatch(arg, "grayscale", 1) || keymatch(arg, "greyscale",1)) {
      /* Force to grayscale. */
#if TRANSFORMS_SUPPORTED
      transformoption.force_grayscale = TRUE;
#else
      select_transform(JXFORM_NONE);	/* force an error */
#endif

    } else if (keymatch(arg, "maxmemory", 3)) {
      /* Maximum memory in Kb (or Mb with 'm'). */
      long lval;
      char ch = 'x';

      if (++argn >= argc)	/* advance to next argument */
	usage();
      if (sscanf(argv[argn], "%ld%c", &lval, &ch) < 1)
	usage();
      if (ch == 'm' || ch == 'M')
	lval *= 1000L;
      cinfo->mem->max_memory_to_use = lval * 1000L;

    } else if (keymatch(arg, "optimize", 1) || keymatch(arg, "optimise", 1)) {
      /* Enable entropy parm optimization. */
#ifdef ENTROPY_OPT_SUPPORTED
      cinfo->optimize_coding = TRUE;
#else
      fprintf(stderr, "%s: sorry, entropy optimization was not compiled\n",
	      progname);
      exit(EXIT_FAILURE);
#endif

    } else if (keymatch(arg, "outfile", 4)) {
      /* Set output file name. */
      if (++argn >= argc)	/* advance to next argument */
	usage();
      outfilename = argv[argn];	/* save it away for later use */

    } else if (keymatch(arg, "progressive", 1)) {
      /* Select simple progressive mode. */
#ifdef C_PROGRESSIVE_SUPPORTED
      simple_progressive = TRUE;
      /* We must postpone execution until num_components is known. */
#else
      fprintf(stderr, "%s: sorry, progressive output was not compiled\n",
	      progname);
      exit(EXIT_FAILURE);
#endif

    } else if (keymatch(arg, "restart", 1)) {
      /* Restart interval in MCU rows (or in MCUs with 'b'). */
      long lval;
      char ch = 'x';

      if (++argn >= argc)	/* advance to next argument */
	usage();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看中文字幕不卡| 亚洲免费高清视频在线| 麻豆精品一二三| 91精品麻豆日日躁夜夜躁| 午夜视频久久久久久| 日韩欧美国产电影| 国产麻豆精品视频| 国产精品久久久久久久久久久免费看| 福利91精品一区二区三区| 中文幕一区二区三区久久蜜桃| 成人午夜av电影| 亚洲激情自拍视频| 欧美一卡二卡三卡| 国产精品一区二区不卡| 国产精品二区一区二区aⅴ污介绍| 91麻豆国产自产在线观看| 亚洲国产aⅴ成人精品无吗| 精品日韩在线观看| 成人免费看黄yyy456| 亚洲视频每日更新| 91精品免费在线| 成人av动漫网站| 亚洲国产va精品久久久不卡综合| 欧美成人a∨高清免费观看| 成人午夜伦理影院| 日欧美一区二区| 日本一区二区三区四区在线视频| 色噜噜偷拍精品综合在线| 蜜桃视频免费观看一区| 中文在线资源观看网站视频免费不卡| 99在线视频精品| 久久国产麻豆精品| 亚洲精品视频观看| 久久久久久久久蜜桃| 在线观看视频一区| 国产精品夜夜嗨| 一级精品视频在线观看宜春院| 欧美一区二区黄| 色综合一个色综合亚洲| 久久精品国产亚洲aⅴ| 亚洲视频 欧洲视频| 精品久久久网站| 欧美羞羞免费网站| 成人永久看片免费视频天堂| 天堂蜜桃一区二区三区 | 国产一区二区三区在线观看免费 | 中文字幕在线不卡视频| 欧美久久一二区| gogogo免费视频观看亚洲一| 热久久久久久久| 亚洲一级二级在线| 欧美国产日韩亚洲一区| 91精品国产免费久久综合| av动漫一区二区| 国产精品一区二区果冻传媒| 麻豆成人久久精品二区三区小说| 亚洲精品综合在线| 中文字幕二三区不卡| 7777精品久久久大香线蕉| 欧美亚洲动漫精品| 91麻豆精品一区二区三区| 成人国产精品视频| 国产综合色产在线精品| 日韩高清不卡在线| 亚洲一区在线观看网站| 亚洲欧美一区二区三区国产精品 | 亚洲一区二区三区四区在线观看| 日本一区二区三区高清不卡| 精品乱码亚洲一区二区不卡| 制服丝袜亚洲色图| 欧美日韩国产首页| 欧美专区在线观看一区| 在线视频中文字幕一区二区| 91在线高清观看| 99精品视频在线播放观看| 欧美亚洲自拍偷拍| 色综合天天在线| 91污片在线观看| 97精品国产露脸对白| 99久久久精品| 97超碰欧美中文字幕| 91免费国产视频网站| 99久久精品免费看国产| av中文字幕亚洲| 91丨九色porny丨蝌蚪| 一本大道久久a久久精品综合| 一本一道久久a久久精品综合蜜臀| 99久久99久久免费精品蜜臀| 色综合久久综合中文综合网| 日本乱人伦一区| 欧美午夜寂寞影院| 欧美一区二区黄| 久久综合久久综合亚洲| 国产精品视频一二三区| 国产精品国产三级国产普通话99 | 91麻豆免费观看| 色噜噜狠狠一区二区三区果冻| 在线观看亚洲a| 91精品婷婷国产综合久久竹菊| 欧美一区二区三区在线电影| 久久精品男人天堂av| 中文字幕一区二区三区在线不卡| 亚洲精品你懂的| 日韩主播视频在线| 国产一区美女在线| 不卡电影一区二区三区| 欧美视频一区二| 精品国产自在久精品国产| 中文字幕av一区二区三区高| 亚洲欧美国产毛片在线| 午夜精品aaa| 国产精品一区在线| 色屁屁一区二区| 91精品国产乱| 中文字幕中文在线不卡住| 亚洲影视在线播放| 精品无人码麻豆乱码1区2区| 成a人片国产精品| 在线电影院国产精品| 欧美激情艳妇裸体舞| 视频在线观看一区二区三区| 国产白丝精品91爽爽久久| 欧美亚洲一区二区三区四区| 久久日韩粉嫩一区二区三区| 亚洲一区成人在线| 国产成人欧美日韩在线电影| 欧美图区在线视频| 欧美国产在线观看| 日本女优在线视频一区二区| 99在线精品视频| 欧美大胆人体bbbb| 亚洲精品国产精品乱码不99 | 国产精品乱人伦中文| 三级一区在线视频先锋| 成人免费高清在线| 精品国产一区二区三区忘忧草| 亚洲欧美日本在线| 国产激情视频一区二区在线观看 | 日韩精品中文字幕一区| 中文字幕一区二区在线观看| 另类小说综合欧美亚洲| 欧美在线一二三四区| 国产欧美日韩另类视频免费观看 | 亚洲国产裸拍裸体视频在线观看乱了| 国产一区二区网址| 9191成人精品久久| 亚洲麻豆国产自偷在线| 国产高清不卡一区二区| 欧美一区二区三区视频| 一区二区三区**美女毛片| 国产成人午夜99999| 精品欧美一区二区三区精品久久| 亚洲国产一区在线观看| 91社区在线播放| 国产女同互慰高潮91漫画| 精品一区中文字幕| 91精品国产综合久久精品图片| 亚洲尤物视频在线| 日本丶国产丶欧美色综合| 日本一区二区高清| 国产成人一区在线| 国产日韩欧美亚洲| 黑人巨大精品欧美一区| 日韩美女主播在线视频一区二区三区| 亚洲午夜久久久久久久久电影网 | 91麻豆精品国产91久久久更新时间| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 国产精一区二区三区| 欧美不卡视频一区| 极品美女销魂一区二区三区| 日韩三级高清在线| 久久不见久久见免费视频1| 日韩视频免费观看高清在线视频| 日本三级韩国三级欧美三级| 日韩欧美一区电影| 久久精品国产久精国产| 欧美刺激午夜性久久久久久久| 国产iv一区二区三区| 中文字幕欧美三区| jiyouzz国产精品久久| 亚洲同性同志一二三专区| 99国产一区二区三精品乱码| 亚洲欧美另类小说视频| 在线免费观看一区| 亚洲高清免费视频| 欧美一区永久视频免费观看| 麻豆91免费观看| 国产亚洲精品精华液| 国产不卡在线一区| 亚洲精品中文字幕乱码三区| 欧美优质美女网站| 日本va欧美va瓶| 久久久国产午夜精品| eeuss鲁一区二区三区| 亚洲网友自拍偷拍| 精品国产免费人成电影在线观看四季| 国产大陆精品国产| 亚洲欧洲制服丝袜| 日韩欧美区一区二| 成人精品视频网站|