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

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

?? jquant1.c

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? C
?? 第 1 頁 / 共 3 頁
字號:
  JSAMPROW colorindex0 = cquantize->colorindex[0];  JSAMPROW colorindex1 = cquantize->colorindex[1];  JSAMPROW colorindex2 = cquantize->colorindex[2];  int * dither0;		/* points to active row of dither matrix */  int * dither1;  int * dither2;  int row_index, col_index;	/* current indexes into dither matrix */  int row;  JDIMENSION col;  JDIMENSION width = cinfo->output_width;  for (row = 0; row < num_rows; row++) {    row_index = cquantize->row_index;    input_ptr = input_buf[row];    output_ptr = output_buf[row];    dither0 = cquantize->odither[0][row_index];    dither1 = cquantize->odither[1][row_index];    dither2 = cquantize->odither[2][row_index];    col_index = 0;    for (col = width; col > 0; col--) {      pixcode  = GETJSAMPLE(colorindex0[GETJSAMPLE(*input_ptr++) +					dither0[col_index]]);      pixcode += GETJSAMPLE(colorindex1[GETJSAMPLE(*input_ptr++) +					dither1[col_index]]);      pixcode += GETJSAMPLE(colorindex2[GETJSAMPLE(*input_ptr++) +					dither2[col_index]]);      *output_ptr++ = (JSAMPLE) pixcode;      col_index = (col_index + 1) & ODITHER_MASK;    }    row_index = (row_index + 1) & ODITHER_MASK;    cquantize->row_index = row_index;  }}METHODDEF(void)quantize_fs_dither (j_decompress_ptr cinfo, JSAMPARRAY input_buf,		    JSAMPARRAY output_buf, int num_rows)/* General case, with Floyd-Steinberg dithering */{  my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize;  register LOCFSERROR cur;	/* current error or pixel value */  LOCFSERROR belowerr;		/* error for pixel below cur */  LOCFSERROR bpreverr;		/* error for below/prev col */  LOCFSERROR bnexterr;		/* error for below/next col */  LOCFSERROR delta;  register FSERRPTR errorptr;	/* => fserrors[] at column before current */  register JSAMPROW input_ptr;  register JSAMPROW output_ptr;  JSAMPROW colorindex_ci;  JSAMPROW colormap_ci;  int pixcode;  int nc = cinfo->out_color_components;  int dir;			/* 1 for left-to-right, -1 for right-to-left */  int dirnc;			/* dir * nc */  int ci;  int row;  JDIMENSION col;  JDIMENSION width = cinfo->output_width;  JSAMPLE *range_limit = cinfo->sample_range_limit;  SHIFT_TEMPS  for (row = 0; row < num_rows; row++) {    /* Initialize output values to 0 so can process components separately */    jzero_far((void FAR *) output_buf[row],	      (size_t) (width * SIZEOF(JSAMPLE)));    for (ci = 0; ci < nc; ci++) {      input_ptr = input_buf[row] + ci;      output_ptr = output_buf[row];      if (cquantize->on_odd_row) {	/* work right to left in this row */	input_ptr += (width-1) * nc; /* so point to rightmost pixel */	output_ptr += width-1;	dir = -1;	dirnc = -nc;	errorptr = cquantize->fserrors[ci] + (width+1); /* => entry after last column */      } else {	/* work left to right in this row */	dir = 1;	dirnc = nc;	errorptr = cquantize->fserrors[ci]; /* => entry before first column */      }      colorindex_ci = cquantize->colorindex[ci];      colormap_ci = cquantize->sv_colormap[ci];      /* Preset error values: no error propagated to first pixel from left */      cur = 0;      /* and no error propagated to row below yet */      belowerr = bpreverr = 0;      for (col = width; col > 0; col--) {	/* cur holds the error propagated from the previous pixel on the	 * current line.  Add the error propagated from the previous line	 * to form the complete error correction term for this pixel, and	 * round the error term (which is expressed * 16) to an integer.	 * RIGHT_SHIFT rounds towards minus infinity, so adding 8 is correct	 * for either sign of the error value.	 * Note: errorptr points to *previous* column's array entry.	 */	cur = RIGHT_SHIFT(cur + errorptr[dir] + 8, 4);	/* Form pixel value + error, and range-limit to 0..MAXJSAMPLE.	 * The maximum error is +- MAXJSAMPLE; this sets the required size	 * of the range_limit array.	 */	cur += GETJSAMPLE(*input_ptr);	cur = GETJSAMPLE(range_limit[cur]);	/* Select output value, accumulate into output code for this pixel */	pixcode = GETJSAMPLE(colorindex_ci[cur]);	*output_ptr += (JSAMPLE) pixcode;	/* Compute actual representation error at this pixel */	/* Note: we can do this even though we don't have the final */	/* pixel code, because the colormap is orthogonal. */	cur -= GETJSAMPLE(colormap_ci[pixcode]);	/* Compute error fractions to be propagated to adjacent pixels.	 * Add these into the running sums, and simultaneously shift the	 * next-line error sums left by 1 column.	 */	bnexterr = cur;	delta = cur * 2;	cur += delta;		/* form error * 3 */	errorptr[0] = (FSERROR) (bpreverr + cur);	cur += delta;		/* form error * 5 */	bpreverr = belowerr + cur;	belowerr = bnexterr;	cur += delta;		/* form error * 7 */	/* At this point cur contains the 7/16 error value to be propagated	 * to the next pixel on the current line, and all the errors for the	 * next line have been shifted over. We are therefore ready to move on.	 */	input_ptr += dirnc;	/* advance input ptr to next column */	output_ptr += dir;	/* advance output ptr to next column */	errorptr += dir;	/* advance errorptr to current column */      }      /* Post-loop cleanup: we must unload the final error value into the       * final fserrors[] entry.  Note we need not unload belowerr because       * it is for the dummy column before or after the actual array.       */      errorptr[0] = (FSERROR) bpreverr; /* unload prev err into array */    }    cquantize->on_odd_row = (cquantize->on_odd_row ? FALSE : TRUE);  }}/* * Allocate workspace for Floyd-Steinberg errors. */LOCAL(void)alloc_fs_workspace (j_decompress_ptr cinfo){  my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize;  size_t arraysize;  int i;  arraysize = (size_t) ((cinfo->output_width + 2) * SIZEOF(FSERROR));  for (i = 0; i < cinfo->out_color_components; i++) {    cquantize->fserrors[i] = (FSERRPTR)      (*cinfo->mem->alloc_large)((j_common_ptr) cinfo, JPOOL_IMAGE, arraysize);  }}/* * Initialize for one-pass color quantization. */METHODDEF(void)start_pass_1_quant (j_decompress_ptr cinfo, boolean is_pre_scan){  my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize;  size_t arraysize;  int i;  /* Install my colormap. */  cinfo->colormap = cquantize->sv_colormap;  cinfo->actual_number_of_colors = cquantize->sv_actual;  /* Initialize for desired dithering mode. */  switch (cinfo->dither_mode) {  case JDITHER_NONE:    if (cinfo->out_color_components == 3)      cquantize->pub.color_quantize = color_quantize3;    else      cquantize->pub.color_quantize = color_quantize;    break;  case JDITHER_ORDERED:    if (cinfo->out_color_components == 3)      cquantize->pub.color_quantize = quantize3_ord_dither;    else      cquantize->pub.color_quantize = quantize_ord_dither;    cquantize->row_index = 0;	/* initialize state for ordered dither */    /* If user changed to ordered dither from another mode,     * we must recreate the color index table with padding.     * This will cost extra space, but probably isn't very likely.     */    if (! cquantize->is_padded)      create_colorindex(cinfo);    /* Create ordered-dither tables if we didn't already. */    if (cquantize->odither[0] == NULL)      create_odither_tables(cinfo);    break;  case JDITHER_FS:    cquantize->pub.color_quantize = quantize_fs_dither;    cquantize->on_odd_row = FALSE; /* initialize state for F-S dither */    /* Allocate Floyd-Steinberg workspace if didn't already. */    if (cquantize->fserrors[0] == NULL)      alloc_fs_workspace(cinfo);    /* Initialize the propagated errors to zero. */    arraysize = (size_t) ((cinfo->output_width + 2) * SIZEOF(FSERROR));    for (i = 0; i < cinfo->out_color_components; i++)      jzero_far((void FAR *) cquantize->fserrors[i], arraysize);    break;  default:    ERREXIT(cinfo, JERR_NOT_COMPILED);    break;  }}/* * Finish up at the end of the pass. */METHODDEF(void)finish_pass_1_quant (j_decompress_ptr cinfo){  /* no work in 1-pass case */}/* * Switch to a new external colormap between output passes. * Shouldn't get to this module! */METHODDEF(void)new_color_map_1_quant (j_decompress_ptr cinfo){  ERREXIT(cinfo, JERR_MODE_CHANGE);}/* * Module initialization routine for 1-pass color quantization. */GLOBAL(void)jinit_1pass_quantizer (j_decompress_ptr cinfo){  my_cquantize_ptr cquantize;  cquantize = (my_cquantize_ptr)    (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE,				SIZEOF(my_cquantizer));  cinfo->cquantize = (struct jpeg_color_quantizer *) cquantize;  cquantize->pub.start_pass = start_pass_1_quant;  cquantize->pub.finish_pass = finish_pass_1_quant;  cquantize->pub.new_color_map = new_color_map_1_quant;  cquantize->fserrors[0] = NULL; /* Flag FS workspace not allocated */  cquantize->odither[0] = NULL;	/* Also flag odither arrays not allocated */  /* Make sure my internal arrays won't overflow */  if (cinfo->out_color_components > MAX_Q_COMPS)    ERREXIT1(cinfo, JERR_QUANT_COMPONENTS, MAX_Q_COMPS);  /* Make sure colormap indexes can be represented by JSAMPLEs */  if (cinfo->desired_number_of_colors > (MAXJSAMPLE+1))    ERREXIT1(cinfo, JERR_QUANT_MANY_COLORS, MAXJSAMPLE+1);  /* Create the colormap and color index table. */  create_colormap(cinfo);  create_colorindex(cinfo);  /* Allocate Floyd-Steinberg workspace now if requested.   * We do this now since it is FAR storage and may affect the memory   * manager's space calculations.  If the user changes to FS dither   * mode in a later pass, we will allocate the space then, and will   * possibly overrun the max_memory_to_use setting.   */  if (cinfo->dither_mode == JDITHER_FS)    alloc_fs_workspace(cinfo);}#endif /* QUANT_1PASS_SUPPORTED */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜不卡在线视频| 国产呦精品一区二区三区网站| 欧美一区二区国产| 成人国产精品免费观看动漫| 首页亚洲欧美制服丝腿| 亚洲视频一区二区免费在线观看| 精品国产伦一区二区三区观看体验 | 精品一区精品二区高清| 亚洲精品欧美二区三区中文字幕| 久久久久久久久蜜桃| 欧美日韩久久一区| 一本色道久久综合亚洲91 | 成+人+亚洲+综合天堂| 蜜桃av一区二区| 亚洲国产va精品久久久不卡综合| 中文字幕欧美激情| 精品久久久久一区二区国产| 欧美喷水一区二区| 欧美专区亚洲专区| 91视视频在线直接观看在线看网页在线看 | 国产色91在线| 日韩亚洲欧美一区二区三区| 欧美自拍丝袜亚洲| 在线看不卡av| 在线精品视频免费观看| 91同城在线观看| hitomi一区二区三区精品| 国产a级毛片一区| 国产91在线观看| 国产成人av电影免费在线观看| 激情久久久久久久久久久久久久久久| 三级影片在线观看欧美日韩一区二区 | 欧美日韩黄色影视| 欧美三级中文字幕| 国产精品乱人伦中文| 色综合久久久久| 成人小视频在线观看| 欧美三级在线看| 欧美主播一区二区三区| 在线视频国内一区二区| 欧美性受xxxx黑人xyx性爽| 欧美在线影院一区二区| 欧美在线一区二区三区| 欧美人牲a欧美精品| 欧美精品777| 91精品国产麻豆国产自产在线| 717成人午夜免费福利电影| 3d动漫精品啪啪1区2区免费| 日韩三级在线免费观看| 精品国产一区二区三区久久久蜜月| 日韩一级片在线观看| 欧美不卡一区二区三区四区| 精品国产髙清在线看国产毛片| 2023国产一二三区日本精品2022| 久久久美女艺术照精彩视频福利播放| 久久久久国产精品厨房| 中文字幕一区二区三区色视频 | 99精品国产一区二区三区不卡| 91亚洲精品一区二区乱码| 一本大道综合伊人精品热热| 欧美性生活影院| 日韩三级电影网址| 久久久国产午夜精品| 18欧美亚洲精品| 日av在线不卡| 国产v综合v亚洲欧| 欧美专区在线观看一区| 精品日韩99亚洲| 国产精品美女一区二区在线观看| 亚洲三级久久久| 日本aⅴ亚洲精品中文乱码| 国产精品综合一区二区三区| jlzzjlzz亚洲日本少妇| 在线91免费看| 国产精品五月天| 午夜久久久久久| 国产成人欧美日韩在线电影| 91国偷自产一区二区三区成为亚洲经典| 欧美日本精品一区二区三区| 日韩成人av影视| 一区二区三区不卡视频在线观看| 亚洲一区二区在线观看视频 | 在线观看91av| 国产日韩欧美激情| 亚洲综合小说图片| 国模套图日韩精品一区二区| 色老汉av一区二区三区| 欧美mv日韩mv国产网站app| 亚洲人成人一区二区在线观看| 日韩在线一区二区三区| 国产伦精品一区二区三区免费迷| 欧洲色大大久久| 国产视频一区二区三区在线观看| 亚洲国产视频a| 国产成人精品在线看| 欧美精品v国产精品v日韩精品| 国产精品乱码久久久久久| 日本不卡的三区四区五区| 丁香啪啪综合成人亚洲小说 | 一区二区三区免费观看| 欧美日本一道本在线视频| 国产欧美视频一区二区三区| 日韩黄色小视频| 欧美亚洲一区二区在线观看| 久久免费精品国产久精品久久久久| 亚洲午夜三级在线| 99精品欧美一区二区三区小说| 精品欧美一区二区久久| 亚洲国产精品尤物yw在线观看| 成人免费毛片片v| www久久精品| 久久精品国产久精国产爱| 欧美日韩一二区| 亚洲男人的天堂av| caoporn国产精品| 中文字幕欧美三区| 国产久卡久卡久卡久卡视频精品| 91精品国产综合久久福利| 亚洲国产日韩一级| 在线影院国内精品| 91在线你懂得| 久久精品国产网站| 欧美嫩在线观看| 亚洲美女视频在线| 成人性视频网站| 欧美激情一区二区三区在线| 久久精品国产一区二区三区免费看| 欧美无砖专区一中文字| 亚洲黄色录像片| 91国偷自产一区二区三区成为亚洲经典| 欧美国产日韩精品免费观看| 国产九色sp调教91| 欧美国产综合一区二区| 国产成人精品免费视频网站| 国产三级精品三级| 国产风韵犹存在线视精品| 久久嫩草精品久久久精品| 国产精品77777| 久久精品人人做人人爽人人| 国产精品一区二区久激情瑜伽| 国产拍欧美日韩视频二区| 国产成人一级电影| 国产精品免费视频网站| 白白色 亚洲乱淫| 中文字幕一区二区在线播放| 色婷婷久久久久swag精品| 亚洲第一二三四区| 日韩一二三四区| 国产乱码字幕精品高清av| 国产日本欧美一区二区| 亚洲一区在线观看视频| 亚洲成av人影院| 在线亚洲+欧美+日本专区| 亚洲国产一区在线观看| 欧美精品日日鲁夜夜添| 蜜桃av一区二区| 久久人人爽爽爽人久久久| 国产91精品精华液一区二区三区| 国产精品久线观看视频| 91久久精品网| 日本少妇一区二区| 久久综合九色综合97婷婷| 成人美女视频在线观看| 一区二区三区四区高清精品免费观看 | 国产精品一二三四区| 亚洲日本va午夜在线电影| 欧美日韩成人一区| 国产成人精品亚洲777人妖| 亚洲精品国产无套在线观| 91精品国产综合久久福利软件 | 国产一区二区美女诱惑| 亚洲视频一区二区在线观看| 丰满少妇在线播放bd日韩电影| 亚洲女人小视频在线观看| 717成人午夜免费福利电影| 国产成人精品三级| 亚洲成人免费看| 日本一二三不卡| 7777精品伊人久久久大香线蕉 | 国产三级一区二区| 欧美亚一区二区| 91精品福利在线一区二区三区| 一区二区三区视频在线观看| 欧美一区二区免费观在线| 成人夜色视频网站在线观看| 午夜精品福利在线| 国产欧美日本一区视频| 欧美日韩国产综合视频在线观看 | 欧美老年两性高潮| 国产成人免费在线视频| 亚洲小说春色综合另类电影| 国产视频视频一区| 666欧美在线视频| 91视频观看视频| 国产乱人伦偷精品视频不卡| 亚洲大片免费看| 国产精品不卡在线观看| 精品国产乱码91久久久久久网站| 一本一本久久a久久精品综合麻豆| 亚洲午夜激情网站|