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

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

?? djpeg.c

?? 一款最完整的工業(yè)組態(tài)軟源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:

    } 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, "pnm", 1) || keymatch(arg, "ppm", 1)) {
      /* PPM/PGM output format. */
      requested_fmt = FMT_PPM;

    } else if (keymatch(arg, "rle", 1)) {
      /* RLE output format. */
      requested_fmt = FMT_RLE;

    } else if (keymatch(arg, "scale", 1)) {
      /* Scale the output image by a fraction M/N. */
      if (++argn >= argc)	/* advance to next argument */
	usage();
      if (sscanf(argv[argn], "%d/%d",
		 &cinfo->scale_num, &cinfo->scale_denom) != 2)
	usage();

    } else if (keymatch(arg, "targa", 1)) {
      /* Targa output format. */
      requested_fmt = FMT_TARGA;

    } else {
      usage();			/* bogus switch */
    }
  }

  return argn;			/* return index of next arg (file name) */
}


/*
 * Marker processor for COM and interesting APPn markers.
 * This replaces the library's built-in processor, which just skips the marker.
 * We want to print out the marker as text, to the extent possible.
 * Note this code relies on a non-suspending data source.
 */

LOCAL(unsigned int)
jpeg_getc (j_decompress_ptr cinfo)
/* Read next byte */
{
  struct jpeg_source_mgr * datasrc = cinfo->src;

  if (datasrc->bytes_in_buffer == 0) {
    if (! (*datasrc->fill_input_buffer) (cinfo))
      ERREXIT(cinfo, JERR_CANT_SUSPEND);
  }
  datasrc->bytes_in_buffer--;
  return GETJOCTET(*datasrc->next_input_byte++);
}


METHODDEF(boolean)
print_text_marker (j_decompress_ptr cinfo)
{
  boolean traceit = (cinfo->err->trace_level >= 1);
  INT32 length;
  unsigned int ch;
  unsigned int lastch = 0;

  length = jpeg_getc(cinfo) << 8;
  length += jpeg_getc(cinfo);
  length -= 2;			/* discount the length word itself */

  if (traceit) {
    if (cinfo->unread_marker == JPEG_COM)
      fprintf(stderr, "Comment, length %ld:\n", (long) length);
    else			/* assume it is an APPn otherwise */
      fprintf(stderr, "APP%d, length %ld:\n",
	      cinfo->unread_marker - JPEG_APP0, (long) length);
  }

  while (--length >= 0) {
    ch = jpeg_getc(cinfo);
    if (traceit) {
      /* Emit the character in a readable form.
       * Nonprintables are converted to \nnn form,
       * while \ is converted to \\.
       * Newlines in CR, CR/LF, or LF form will be printed as one newline.
       */
      if (ch == '\r') {
	fprintf(stderr, "\n");
      } else if (ch == '\n') {
	if (lastch != '\r')
	  fprintf(stderr, "\n");
      } else if (ch == '\\') {
	fprintf(stderr, "\\\\");
      } else if (isprint(ch)) {
	putc(ch, stderr);
      } else {
	fprintf(stderr, "\\%03o", ch);
      }
      lastch = ch;
    }
  }

  if (traceit)
    fprintf(stderr, "\n");

  return TRUE;
}


/*
 * The main program.
 */

int
main (int argc, char **argv)
{
  struct jpeg_decompress_struct cinfo;
  struct jpeg_error_mgr jerr;
#ifdef PROGRESS_REPORT
  struct cdjpeg_progress_mgr progress;
#endif
  int file_index;
  djpeg_dest_ptr dest_mgr = NULL;
  FILE * input_file;
  FILE * output_file;
  JDIMENSION num_scanlines;

  /* On Mac, fetch a command line. */
#ifdef USE_CCOMMAND
  argc = ccommand(&argv);
#endif

  progname = argv[0];
  if (progname == NULL || progname[0] == 0)
    progname = "djpeg";		/* in case C library doesn't provide it */

  /* Initialize the JPEG decompression object with default error handling. */
  cinfo.err = jpeg_std_error(&jerr);
  jpeg_create_decompress(&cinfo);
  /* Add some application-specific error messages (from cderror.h) */
  jerr.addon_message_table = cdjpeg_message_table;
  jerr.first_addon_message = JMSG_FIRSTADDONCODE;
  jerr.last_addon_message = JMSG_LASTADDONCODE;

  /* Insert custom marker processor for COM and APP12.
   * APP12 is used by some digital camera makers for textual info,
   * so we provide the ability to display it as text.
   * If you like, additional APPn marker types can be selected for display,
   * but don't try to override APP0 or APP14 this way (see libjpeg.doc).
   */
  jpeg_set_marker_processor(&cinfo, JPEG_COM, print_text_marker);
  jpeg_set_marker_processor(&cinfo, JPEG_APP0+12, print_text_marker);

  /* Now safe to enable signal catcher. */
#ifdef NEED_SIGNAL_CATCHER
  enable_signal_catcher((j_common_ptr) &cinfo);
#endif

  /* Scan command line to find file names. */
  /* It is convenient to use just one switch-parsing routine, but the switch
   * values read here are ignored; we will rescan the switches after opening
   * the input file.
   * (Exception: tracing level set here controls verbosity for COM markers
   * found during jpeg_read_header...)
   */

  file_index = parse_switches(&cinfo, argc, argv, 0, FALSE);

#ifdef TWO_FILE_COMMANDLINE
  /* Must have either -outfile switch or explicit output file name */
  if (outfilename == NULL) {
    if (file_index != argc-2) {
      fprintf(stderr, "%s: must name one input and one output file\n",
	      progname);
      usage();
    }
    outfilename = argv[file_index+1];
  } else {
    if (file_index != argc-1) {
      fprintf(stderr, "%s: must name one input and one output file\n",
	      progname);
      usage();
    }
  }
#else
  /* Unix style: expect zero or one file name */
  if (file_index < argc-1) {
    fprintf(stderr, "%s: only one input file\n", progname);
    usage();
  }
#endif /* TWO_FILE_COMMANDLINE */

  /* Open the input file. */
  if (file_index < argc) {
    if ((input_file = fopen(argv[file_index], READ_BINARY)) == NULL) {
      fprintf(stderr, "%s: can't open %s\n", progname, argv[file_index]);
      exit(EXIT_FAILURE);
    }
  } else {
    /* default input file is stdin */
    input_file = read_stdin();
  }

  /* Open the output file. */
  if (outfilename != NULL) {
    if ((output_file = fopen(outfilename, WRITE_BINARY)) == NULL) {
      fprintf(stderr, "%s: can't open %s\n", progname, outfilename);
      exit(EXIT_FAILURE);
    }
  } else {
    /* default output file is stdout */
    output_file = write_stdout();
  }

#ifdef PROGRESS_REPORT
  start_progress_monitor((j_common_ptr) &cinfo, &progress);
#endif

  /* Specify data source for decompression */
  jpeg_stdio_src(&cinfo, input_file);

  /* Read file header, set default decompression parameters */
  (void) jpeg_read_header(&cinfo, TRUE);

  /* Adjust default decompression parameters by re-parsing the options */
  file_index = parse_switches(&cinfo, argc, argv, 0, TRUE);

  /* Initialize the output module now to let it override any crucial
   * option settings (for instance, GIF wants to force color quantization).
   */
  switch (requested_fmt) {
#ifdef BMP_SUPPORTED
  case FMT_BMP:
    dest_mgr = jinit_write_bmp(&cinfo, FALSE);
    break;
  case FMT_OS2:
    dest_mgr = jinit_write_bmp(&cinfo, TRUE);
    break;
#endif
#ifdef GIF_SUPPORTED
  case FMT_GIF:
    dest_mgr = jinit_write_gif(&cinfo);
    break;
#endif
#ifdef PPM_SUPPORTED
  case FMT_PPM:
    dest_mgr = jinit_write_ppm(&cinfo);
    break;
#endif
#ifdef RLE_SUPPORTED
  case FMT_RLE:
    dest_mgr = jinit_write_rle(&cinfo);
    break;
#endif
#ifdef TARGA_SUPPORTED
  case FMT_TARGA:
    dest_mgr = jinit_write_targa(&cinfo);
    break;
#endif
  default:
    ERREXIT(&cinfo, JERR_UNSUPPORTED_FORMAT);
    break;
  }
  dest_mgr->output_file = output_file;

  /* Start decompressor */
  (void) jpeg_start_decompress(&cinfo);

  /* Write output file header */
  (*dest_mgr->start_output) (&cinfo, dest_mgr);

  /* Process data */
  while (cinfo.output_scanline < cinfo.output_height) {
    num_scanlines = jpeg_read_scanlines(&cinfo, dest_mgr->buffer,
					dest_mgr->buffer_height);
    (*dest_mgr->put_pixel_rows) (&cinfo, dest_mgr, num_scanlines);
  }

#ifdef PROGRESS_REPORT
  /* Hack: count final pass as done in case finish_output does an extra pass.
   * The library won't have updated completed_passes.
   */
  progress.pub.completed_passes = progress.pub.total_passes;
#endif

  /* Finish decompression and release memory.
   * I must do it in this order because output module has allocated memory
   * of lifespan JPOOL_IMAGE; it needs to finish before releasing memory.
   */
  (*dest_mgr->finish_output) (&cinfo, dest_mgr);
  (void) jpeg_finish_decompress(&cinfo);
  jpeg_destroy_decompress(&cinfo);

  /* Close files, if we opened them */
  if (input_file != stdin)
    fclose(input_file);
  if (output_file != stdout)
    fclose(output_file);

#ifdef PROGRESS_REPORT
  end_progress_monitor((j_common_ptr) &cinfo);
#endif

  /* All done. */
  exit(jerr.num_warnings ? EXIT_WARNING : EXIT_SUCCESS);
  return 0;			/* suppress no-return-value warnings */
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产女同性恋一区二区| 亚洲乱码精品一二三四区日韩在线| 国产偷国产偷亚洲高清人白洁| 国产精品美女一区二区三区| 一区二区三区四区视频精品免费 | 欧美不卡一区二区三区四区| 欧洲国产伦久久久久久久| 日本精品免费观看高清观看| 91福利视频网站| 99re这里只有精品视频首页| 97精品久久久久中文字幕| 成人自拍视频在线| 国产老肥熟一区二区三区| 久久国产精品免费| 国产一区二区三区久久久| 麻豆91免费看| 岛国一区二区三区| 日本乱码高清不卡字幕| 欧美区视频在线观看| 337p亚洲精品色噜噜狠狠| 日韩午夜中文字幕| 国产日本欧美一区二区| 亚洲精品高清在线观看| 免费精品视频在线| av资源网一区| 精品久久久久久无| 亚洲女同女同女同女同女同69| 天天综合网 天天综合色| 欧美日韩免费观看一区二区三区| 色av综合在线| 91在线精品一区二区| 日本中文字幕一区二区有限公司| 国产欧美一区二区三区网站| 欧美日韩国产另类不卡| 日韩女同互慰一区二区| 2017欧美狠狠色| 亚洲视频在线一区| 亚洲美女区一区| 久久99精品久久久| 欧美日韩电影一区| 亚洲欧美日韩精品久久久久| 另类成人小视频在线| 99久久综合国产精品| 久久无码av三级| 裸体歌舞表演一区二区| 欧美无乱码久久久免费午夜一区| 欧美国产精品一区二区三区| 日韩电影在线看| 97精品久久久午夜一区二区三区| 久久伊人蜜桃av一区二区| 奇米精品一区二区三区在线观看 | 亚洲国产成人私人影院tom| 亚洲成人免费看| 在线视频亚洲一区| 亚洲女人****多毛耸耸8| 91一区二区三区在线播放| 国产午夜亚洲精品理论片色戒| 蜜臀av亚洲一区中文字幕| 欧美日韩国产区一| 国产露脸91国语对白| 欧美一二三四在线| 人人爽香蕉精品| 精品国产污污免费网站入口 | 欧美视频在线观看一区二区| 亚洲精品高清视频在线观看| 91麻豆免费观看| 一区二区中文视频| 日本乱人伦一区| 午夜精品久久久久久不卡8050| 欧美一区二区三区四区视频| 久久国产麻豆精品| 中文字幕精品在线不卡| 99国产精品国产精品毛片| 亚洲综合在线第一页| 91精品国产一区二区三区蜜臀| 久久99精品久久久久久动态图| 国产午夜精品美女毛片视频| 91免费国产在线观看| 午夜久久久影院| 337p日本欧洲亚洲大胆色噜噜| 国产suv一区二区三区88区| 尤物在线观看一区| 91福利在线看| 国产一区二区中文字幕| 日韩一区在线播放| 久久一夜天堂av一区二区三区 | 九一久久久久久| 亚洲综合在线观看视频| 久久色成人在线| 欧美日本国产视频| 99久久综合色| 国产成人福利片| 免费日本视频一区| 一区二区三区四区视频精品免费 | 色婷婷综合久久久久中文| 五月天激情综合网| 亚洲色大成网站www久久九九| 精品久久久久久久一区二区蜜臀| 欧美视频在线播放| 99久久久无码国产精品| 精品一区二区在线播放| 午夜影院在线观看欧美| 亚洲蜜臀av乱码久久精品| 国产麻豆一精品一av一免费 | 毛片一区二区三区| 日韩在线一二三区| 日韩国产在线观看一区| 久久超碰97中文字幕| 激情五月激情综合网| 精品亚洲aⅴ乱码一区二区三区| 美女视频黄免费的久久| 久草热8精品视频在线观看| 精品一区二区影视| 国产成人精品免费看| 在线一区二区三区四区| 欧美另类一区二区三区| 欧美一区二区三区精品| 国产亚洲欧美激情| 国产精品久久久久桃色tv| 亚洲色欲色欲www在线观看| 亚洲图片有声小说| 精品亚洲免费视频| 91浏览器打开| 5566中文字幕一区二区电影| 久久久久久97三级| 亚洲天堂久久久久久久| 久久99热这里只有精品| eeuss国产一区二区三区| 91精品国产91久久综合桃花 | 国产福利一区在线| 99re视频这里只有精品| 美女网站在线免费欧美精品| 欧美日韩精品高清| 国产精品一区二区91| 欧美成人高清电影在线| 精品国产伦一区二区三区观看方式| 欧美视频一区在线观看| 午夜精品一区在线观看| 欧美亚洲日本一区| 日本视频一区二区三区| 欧美一级艳片视频免费观看| 另类欧美日韩国产在线| 欧美精品一区二区在线播放| 成人午夜视频网站| 亚洲欧美日韩久久| 欧美高清www午色夜在线视频| 日韩和的一区二区| 久久综合久久久久88| 国产一区999| 亚洲黄一区二区三区| 91免费视频网址| 亚洲在线中文字幕| 欧美一级理论片| 国产盗摄女厕一区二区三区| 国产精品久久免费看| 99精品桃花视频在线观看| 樱花草国产18久久久久| 欧美疯狂性受xxxxx喷水图片| 九九在线精品视频| 中文字幕字幕中文在线中不卡视频| 色噜噜偷拍精品综合在线| 久久女同精品一区二区| bt欧美亚洲午夜电影天堂| 午夜精品福利久久久| 精品国产一区二区三区久久影院| 成人激情小说乱人伦| 天天综合网天天综合色| 久久九九全国免费| 欧美麻豆精品久久久久久| 99久久国产综合精品色伊| 午夜电影网亚洲视频| 中文一区二区在线观看| 色综合久久久网| 秋霞电影一区二区| 亚洲综合偷拍欧美一区色| 欧美不卡视频一区| 成人高清视频在线| 亚洲高清免费在线| 国产目拍亚洲精品99久久精品| 成人在线一区二区三区| 日韩成人一区二区三区在线观看| 亚洲欧美日韩中文字幕一区二区三区| 欧美成人aa大片| 欧美一二三区在线| 欧美精品色综合| 欧美日韩在线免费视频| 精品视频在线免费观看| 色婷婷av一区| 欧美三级韩国三级日本一级| 在线观看一区日韩| 欧美视频日韩视频在线观看| 99热在这里有精品免费| 国产成人啪午夜精品网站男同| 国产成人啪午夜精品网站男同| 狠狠色综合日日| 国产老妇另类xxxxx| 成人黄色电影在线| 色视频欧美一区二区三区| 在线观看欧美日本| 在线精品视频免费播放|