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

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

?? jccolor.c

?? About JPEG, executable on Visual C++
?? C
?? 第 1 頁 / 共 2 頁
字號:
 */

METHODDEF(void)
cmyk_ycck_convert (j_compress_ptr cinfo,
		   JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
		   JDIMENSION output_row, int num_rows)
{
  my_cconvert_ptr cconvert = (my_cconvert_ptr) cinfo->cconvert;
  register int r, g, b;
  register INT32 * ctab = cconvert->rgb_ycc_tab;
  register JSAMPROW inptr;
  register JSAMPROW outptr0, outptr1, outptr2, outptr3;
  register JDIMENSION col;
  JDIMENSION num_cols = cinfo->image_width;

  while (--num_rows >= 0) {
    inptr = *input_buf++;
    outptr0 = output_buf[0][output_row];
    outptr1 = output_buf[1][output_row];
    outptr2 = output_buf[2][output_row];
    outptr3 = output_buf[3][output_row];
    output_row++;
    for (col = 0; col < num_cols; col++) {
      r = MAXJSAMPLE - GETJSAMPLE(inptr[0]);
      g = MAXJSAMPLE - GETJSAMPLE(inptr[1]);
      b = MAXJSAMPLE - GETJSAMPLE(inptr[2]);
      /* K passes through as-is */
      outptr3[col] = inptr[3];	/* don't need GETJSAMPLE here */
      inptr += 4;
      /* If the inputs are 0..MAXJSAMPLE, the outputs of these equations
       * must be too; we do not need an explicit range-limiting operation.
       * Hence the value being shifted is never negative, and we don't
       * need the general RIGHT_SHIFT macro.
       */
      /* Y */
      outptr0[col] = (JSAMPLE)
		((ctab[r+R_Y_OFF] + ctab[g+G_Y_OFF] + ctab[b+B_Y_OFF])
		 >> SCALEBITS);
      /* Cb */
      outptr1[col] = (JSAMPLE)
		((ctab[r+R_CB_OFF] + ctab[g+G_CB_OFF] + ctab[b+B_CB_OFF])
		 >> SCALEBITS);
      /* Cr */
      outptr2[col] = (JSAMPLE)
		((ctab[r+R_CR_OFF] + ctab[g+G_CR_OFF] + ctab[b+B_CR_OFF])
		 >> SCALEBITS);
    }
  }
}


/*
 * Convert some rows of samples to the JPEG colorspace.
 * This version handles grayscale output with no conversion.
 * The source can be either plain grayscale or YCbCr (since Y == gray).
 */

METHODDEF(void)
grayscale_convert (j_compress_ptr cinfo,
		   JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
		   JDIMENSION output_row, int num_rows)
{
  register JSAMPROW inptr;
  register JSAMPROW outptr;
  register JDIMENSION col;
  JDIMENSION num_cols = cinfo->image_width;
  int instride = cinfo->input_components;

  while (--num_rows >= 0) {
    inptr = *input_buf++;
    outptr = output_buf[0][output_row];
    output_row++;
    for (col = 0; col < num_cols; col++) {
      outptr[col] = inptr[0];	/* don't need GETJSAMPLE() here */
      inptr += instride;
    }
  }
}


/*
 * Convert some rows of samples to the JPEG colorspace.
 * This version handles multi-component colorspaces without conversion.
 * We assume input_components == num_components.
 */

METHODDEF(void)
null_convert (j_compress_ptr cinfo,
	      JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
	      JDIMENSION output_row, int num_rows)
{
  register JSAMPROW inptr;
  register JSAMPROW outptr;
  register JDIMENSION col;
  register int ci;
  int nc = cinfo->num_components;
  JDIMENSION num_cols = cinfo->image_width;

  while (--num_rows >= 0) {
    /* It seems fastest to make a separate pass for each component. */
    for (ci = 0; ci < nc; ci++) {
      inptr = *input_buf;
      outptr = output_buf[ci][output_row];
      for (col = 0; col < num_cols; col++) {
	outptr[col] = inptr[ci]; /* don't need GETJSAMPLE() here */
	inptr += nc;
      }
    }
    input_buf++;
    output_row++;
  }
}


/*
 * Empty method for start_pass.
 */

METHODDEF(void)
null_method (j_compress_ptr cinfo)
{
  /* no work needed */
}


/*
 * Module initialization routine for input colorspace conversion.
 */

GLOBAL(void)
jinit_color_converter (j_compress_ptr cinfo)
{
  my_cconvert_ptr cconvert;

  cconvert = (my_cconvert_ptr)
    (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE,
				SIZEOF(my_color_converter));
  cinfo->cconvert = (struct jpeg_color_converter *) cconvert;
  /* set start_pass to null method until we find out differently */
  cconvert->pub.start_pass = null_method;

  /* Make sure input_components agrees with in_color_space */
  switch (cinfo->in_color_space) {
  case JCS_GRAYSCALE:
    if (cinfo->input_components != 1)
      ERREXIT(cinfo, JERR_BAD_IN_COLORSPACE);
    break;

  case JCS_RGB:
#if RGB_PIXELSIZE != 3
    if (cinfo->input_components != RGB_PIXELSIZE)
      ERREXIT(cinfo, JERR_BAD_IN_COLORSPACE);
    break;
#endif /* else share code with YCbCr */

  case JCS_YCbCr:
    if (cinfo->input_components != 3)
      ERREXIT(cinfo, JERR_BAD_IN_COLORSPACE);
    break;

  case JCS_CMYK:
  case JCS_YCCK:
    if (cinfo->input_components != 4)
      ERREXIT(cinfo, JERR_BAD_IN_COLORSPACE);
    break;

  default:			/* JCS_UNKNOWN can be anything */
    if (cinfo->input_components < 1)
      ERREXIT(cinfo, JERR_BAD_IN_COLORSPACE);
    break;
  }

  /* Check num_components, set conversion method based on requested space */
  switch (cinfo->jpeg_color_space) {
  case JCS_GRAYSCALE:
    if (cinfo->num_components != 1)
      ERREXIT(cinfo, JERR_BAD_J_COLORSPACE);
    if (cinfo->in_color_space == JCS_GRAYSCALE)
      cconvert->pub.color_convert = grayscale_convert;
    else if (cinfo->in_color_space == JCS_RGB) {
      cconvert->pub.start_pass = rgb_ycc_start;
      cconvert->pub.color_convert = rgb_gray_convert;
    } else if (cinfo->in_color_space == JCS_YCbCr)
      cconvert->pub.color_convert = grayscale_convert;
    else
      ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL);
    break;

  case JCS_RGB:
    if (cinfo->num_components != 3)
      ERREXIT(cinfo, JERR_BAD_J_COLORSPACE);
    if (cinfo->in_color_space == JCS_RGB && RGB_PIXELSIZE == 3)
      cconvert->pub.color_convert = null_convert;
    else
      ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL);
    break;

  case JCS_YCbCr:
    if (cinfo->num_components != 3)
      ERREXIT(cinfo, JERR_BAD_J_COLORSPACE);
    if (cinfo->in_color_space == JCS_RGB) {
      cconvert->pub.start_pass = rgb_ycc_start;
      cconvert->pub.color_convert = rgb_ycc_convert;
    } else if (cinfo->in_color_space == JCS_YCbCr)
      cconvert->pub.color_convert = null_convert;
    else
      ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL);
    break;

  case JCS_CMYK:
    if (cinfo->num_components != 4)
      ERREXIT(cinfo, JERR_BAD_J_COLORSPACE);
    if (cinfo->in_color_space == JCS_CMYK)
      cconvert->pub.color_convert = null_convert;
    else
      ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL);
    break;

  case JCS_YCCK:
    if (cinfo->num_components != 4)
      ERREXIT(cinfo, JERR_BAD_J_COLORSPACE);
    if (cinfo->in_color_space == JCS_CMYK) {
      cconvert->pub.start_pass = rgb_ycc_start;
      cconvert->pub.color_convert = cmyk_ycck_convert;
    } else if (cinfo->in_color_space == JCS_YCCK)
      cconvert->pub.color_convert = null_convert;
    else
      ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL);
    break;

  default:			/* allow null conversion of JCS_UNKNOWN */
    if (cinfo->jpeg_color_space != cinfo->in_color_space ||
	cinfo->num_components != cinfo->input_components)
      ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL);
    cconvert->pub.color_convert = null_convert;
    break;
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天堂在线亚洲视频| 91精品国产综合久久香蕉的特点 | 亚洲精品国产一区二区精华液 | 日韩精品欧美精品| 精品亚洲免费视频| 在线视频综合导航| 国产精品久久久久天堂| 免费观看在线综合| 欧美日韩免费一区二区三区视频| 亚洲国产岛国毛片在线| 九一久久久久久| 欧美日韩免费高清一区色橹橹| 国产精品免费视频观看| 久久99精品久久久久久国产越南 | 欧美日韩在线观看一区二区| 中文字幕欧美三区| 国产精品伊人色| 欧美v日韩v国产v| 日本亚洲三级在线| 欧美视频一区在线| 亚洲精品免费电影| 在线看一区二区| 中文字幕一区二区不卡| 国产·精品毛片| 国产精品网曝门| 成人免费高清在线观看| 国产蜜臀av在线一区二区三区| 国内久久婷婷综合| 久久女同性恋中文字幕| 国产一区二区主播在线| 久久精品综合网| 国产69精品久久99不卡| 国产精品拍天天在线| 国产91富婆露脸刺激对白| 中文久久乱码一区二区| va亚洲va日韩不卡在线观看| 日韩理论片一区二区| 99精品久久免费看蜜臀剧情介绍| 国产精品日韩成人| 91亚洲国产成人精品一区二区三 | 国产精品国产三级国产a| 国产suv精品一区二区6| 日本一二三不卡| 色综合网色综合| 五月天欧美精品| 欧美sm美女调教| 国产成a人亚洲精品| 中文字幕色av一区二区三区| 在线免费一区三区| 美女视频一区二区三区| 国产欧美一区视频| 色偷偷88欧美精品久久久| 午夜视频在线观看一区二区三区 | 欧美日韩亚州综合| 精品无码三级在线观看视频| 久久精品人人做| 91久久精品一区二区二区| 视频一区视频二区在线观看| 久久亚洲综合av| 99这里都是精品| 日韩精品五月天| 国产日韩高清在线| 在线观看日韩电影| 国产精品一区二区视频| 一级日本不卡的影视| 日韩欧美一区在线观看| 国产乱子伦视频一区二区三区| **网站欧美大片在线观看| 91精品国产欧美一区二区18| 国产成人精品网址| 天天色综合成人网| 亚洲国产精品成人综合| 欧美一区二区三区免费在线看 | 欧美va天堂va视频va在线| 99国产精品视频免费观看| 奇米色一区二区三区四区| 亚洲人午夜精品天堂一二香蕉| 亚洲第一激情av| 欧美mv日韩mv国产网站app| 国产精品一区二区三区99| 一区二区三区视频在线观看| 欧美成人三级电影在线| 欧洲av在线精品| 成人天堂资源www在线| 久久福利资源站| 婷婷综合另类小说色区| 18成人在线观看| 亚洲国产精品高清| 精品久久久久久亚洲综合网| 欧美三级视频在线| 成人h精品动漫一区二区三区| 人人狠狠综合久久亚洲| 亚洲福中文字幕伊人影院| 国产精品久久久一本精品| 精品国产伦一区二区三区观看方式 | 久久久久久综合| 日韩一区二区三区视频在线观看| 欧洲国内综合视频| 色综合久久中文字幕综合网| 丁香一区二区三区| 国产精品性做久久久久久| 久草热8精品视频在线观看| 日韩高清国产一区在线| 午夜激情一区二区三区| 亚洲成人av福利| 亚洲综合图片区| 亚洲精品中文字幕乱码三区| 国产精品电影一区二区| 欧美国产日韩亚洲一区| 久久久久久一二三区| 久久久亚洲精品石原莉奈 | 亚洲欧美偷拍三级| 亚洲欧洲av在线| 1024成人网| 亚洲一区二区偷拍精品| 亚洲国产毛片aaaaa无费看| 亚洲国产成人91porn| 婷婷久久综合九色综合伊人色| 婷婷综合久久一区二区三区| 日本不卡在线视频| 国产综合一区二区| 成人午夜视频在线| 色婷婷亚洲婷婷| 欧美男男青年gay1069videost | 欧美性受xxxx| 欧美日韩亚洲另类| 精品久久久久久久久久久久包黑料| 欧美xxxxx裸体时装秀| 国产亚洲人成网站| 亚洲欧美日本韩国| 香蕉乱码成人久久天堂爱免费| 日韩—二三区免费观看av| 激情欧美一区二区| av网站免费线看精品| 欧美四级电影网| 亚洲精品一线二线三线| 国产精品色呦呦| 亚洲国产精品久久一线不卡| 久久er99精品| 99视频精品免费视频| 欧美日韩五月天| 国产婷婷一区二区| 亚洲国产视频a| 国产一区二区剧情av在线| 91亚洲精品一区二区乱码| 欧美一区二区三区视频免费 | 色综合久久久网| 91精品国产全国免费观看| 国产精品美女一区二区三区| 亚洲综合激情网| 国产黄人亚洲片| 欧美军同video69gay| 国产视频一区不卡| 亚洲成精国产精品女| 国产精品456| 欧美一区二区黄色| 亚洲欧美自拍偷拍| 蜜臀av国产精品久久久久| 99riav一区二区三区| 久久综合九色综合欧美98| 亚洲狠狠爱一区二区三区| 风流少妇一区二区| 日韩亚洲欧美成人一区| 一区二区在线看| 成人小视频在线观看| 日韩女优毛片在线| 亚洲夂夂婷婷色拍ww47| 国产精品系列在线播放| 欧美丰满少妇xxxbbb| 国产精品成人免费在线| 久久99精品久久久久| 欧美日韩国产乱码电影| 中文字幕亚洲视频| 国产精品亚洲人在线观看| 欧美大片一区二区三区| 亚洲国产成人高清精品| 91美女视频网站| 国产精品久久久久久久蜜臀 | 亚洲视频1区2区| 国产成a人亚洲精品| 久久综合久久久久88| 久久99精品国产麻豆不卡| 91精品国产高清一区二区三区| 亚洲午夜成aⅴ人片| 色欲综合视频天天天| 亚洲欧洲日韩女同| av男人天堂一区| 成人免费一区二区三区在线观看| 国产福利精品导航| 国产女人18毛片水真多成人如厕| 精久久久久久久久久久| 精品国产成人在线影院| 免费成人在线网站| 日韩视频在线你懂得| 美女免费视频一区| 日韩一区二区在线观看视频| 免费看欧美女人艹b| 精品国产一区二区三区久久影院| 蜜桃av一区二区三区| 日韩免费电影一区|