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

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

?? jpegtran.c

?? 一款最完整的工業組態軟源代碼
?? 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一区二区三区免费野_久草精品视频
精品国产不卡一区二区三区| 日韩avvvv在线播放| 色8久久精品久久久久久蜜| 日韩国产成人精品| 椎名由奈av一区二区三区| 欧美一卡二卡三卡| 99久久精品免费精品国产| 国产一区二区三区不卡在线观看| 亚洲永久免费av| 国产欧美日本一区视频| 91精品国产综合久久小美女| 91丨九色丨蝌蚪富婆spa| 久久se这里有精品| 亚洲午夜激情av| 亚洲视频一区在线| 国产亚洲欧美一区在线观看| 欧美一区二区三区四区久久| 一本一道综合狠狠老| 国产成人精品一区二区三区四区 | 久久国内精品自在自线400部| 亚洲免费av在线| 国产精品电影院| 国产欧美精品一区aⅴ影院| 欧美成人乱码一区二区三区| 在线视频你懂得一区| 99久久婷婷国产精品综合| 国产精品亚洲综合一区在线观看| 免费看欧美女人艹b| 日本成人超碰在线观看| 亚洲电影在线播放| 亚洲影院免费观看| 亚洲综合色网站| 亚洲人被黑人高潮完整版| 国产精品久久久久精k8| 日韩一区日韩二区| 中文字幕综合网| 亚洲欧洲精品成人久久奇米网| 国产精品免费人成网站| 中文字幕精品综合| 国产精品高潮呻吟| 亚洲精品精品亚洲| 亚洲与欧洲av电影| 丝袜亚洲另类欧美| 久久丁香综合五月国产三级网站| 男人的天堂久久精品| 美女一区二区久久| 国产精品一品二品| 成人精品小蝌蚪| 色综合天天综合狠狠| 91在线观看下载| 欧美做爰猛烈大尺度电影无法无天| 91国在线观看| 欧美视频一区二区三区在线观看| 欧美日韩一区二区三区在线| 欧美日韩一级大片网址| 在线播放一区二区三区| 日韩午夜在线播放| 久久久夜色精品亚洲| 中文字幕欧美日本乱码一线二线| 国产精品毛片a∨一区二区三区| 成人欧美一区二区三区白人| 亚洲一区二区成人在线观看| 日韩国产欧美三级| 国产精品自拍av| 91免费视频网| 欧美久久久久中文字幕| 欧美精品一区二区三区视频 | 中文字幕在线不卡视频| 亚洲精品国产视频| 日本中文字幕一区二区有限公司| 国产一区视频在线看| 成人av网站在线观看| 欧美日韩国产首页| 久久色.com| 亚洲宅男天堂在线观看无病毒 | jlzzjlzz亚洲女人18| 在线视频一区二区三区| 欧美大度的电影原声| 国产精品丝袜久久久久久app| 亚洲一区二区三区四区中文字幕| 狂野欧美性猛交blacked| 成人国产一区二区三区精品| 欧美日韩国产影片| 久久久av毛片精品| 亚洲成a人片综合在线| 国产精品一区二区三区四区| 91免费视频网址| 久久久影视传媒| 五月天亚洲婷婷| www.日韩大片| 精品成人佐山爱一区二区| 一区二区三区中文在线| 国产精品综合二区| 欧美疯狂做受xxxx富婆| 国产午夜亚洲精品理论片色戒| 一区二区三区在线高清| 国产成人综合自拍| 7777精品久久久大香线蕉| 国产精品久久三区| 国内久久精品视频| 91麻豆精品91久久久久久清纯| 国产精品美女久久久久高潮| 老司机精品视频在线| 欧美性大战久久久久久久蜜臀| 国产婷婷一区二区| 奇米一区二区三区av| 色综合久久久久久久| 国产日韩欧美一区二区三区乱码 | 日韩欧美中文字幕精品| 亚洲视频在线一区| 成人av在线播放网址| www精品美女久久久tv| 日日摸夜夜添夜夜添国产精品| 91丨九色丨国产丨porny| 国产亚洲成av人在线观看导航| 蜜桃视频一区二区三区| 欧美日韩1234| 亚洲韩国精品一区| 欧美自拍偷拍午夜视频| 国产精品国模大尺度视频| 国产福利一区二区三区视频 | 国产精品久久久久久久久搜平片| 久久精品国产一区二区| 欧美老肥妇做.爰bbww视频| 亚洲欧美日韩国产中文在线| 懂色av一区二区三区蜜臀| 久久亚洲综合av| 久久成人羞羞网站| 日韩一级免费观看| 日韩成人一区二区三区在线观看| 欧美性xxxxx极品少妇| 亚洲资源在线观看| 日本精品一区二区三区高清 | 欧美综合天天夜夜久久| 成人欧美一区二区三区1314| 白白色 亚洲乱淫| 国产网红主播福利一区二区| 国产精品影视天天线| 国产亚洲欧美在线| 国产一区二区三区免费看| 国产亚洲女人久久久久毛片| 国产一区二区三区久久久| 久久久久久免费| 高清不卡一二三区| 国产精品视频免费看| caoporm超碰国产精品| 亚洲欧美自拍偷拍色图| 91蜜桃网址入口| 午夜精品福利久久久| 91精品国产全国免费观看| 久久av中文字幕片| 久久一区二区三区国产精品| 国产69精品久久99不卡| 国产精品国产精品国产专区不蜜| 99久久伊人久久99| 亚洲国产欧美日韩另类综合| 欧美日韩高清在线播放| 奇米影视一区二区三区| 久久先锋资源网| 国产不卡在线一区| 亚洲视频在线一区二区| 欧美色综合影院| 蜜桃精品视频在线| 国产日韩欧美不卡在线| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 亚洲三级小视频| 欧美日韩国产成人在线免费| 奇米影视一区二区三区| 国产亚洲美州欧州综合国| 色综合网站在线| 青青草国产成人99久久| 久久久精品国产99久久精品芒果 | 精品一区二区三区久久久| 久久蜜桃av一区精品变态类天堂| 北条麻妃一区二区三区| 亚洲国产精品影院| 精品国产91乱码一区二区三区 | 色视频成人在线观看免| 免费在线观看一区| 中文字幕一区二区不卡| 67194成人在线观看| 国产激情一区二区三区四区 | 秋霞影院一区二区| 欧美激情中文字幕| 4438成人网| 91丝袜呻吟高潮美腿白嫩在线观看| 三级影片在线观看欧美日韩一区二区| 欧美成人bangbros| 91久久一区二区| 国产一区二区剧情av在线| 亚洲综合久久av| 亚洲国产精品av| 91精品国产91热久久久做人人| 成人不卡免费av| 老司机精品视频在线| 亚洲福中文字幕伊人影院| 中文字幕不卡在线观看| 日韩午夜激情视频| 色av综合在线| 盗摄精品av一区二区三区|