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

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

?? transupp.c

?? 一款最完整的工業組態軟源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
   * not mirrored.
   */
  MCU_rows = dstinfo->image_height / (dstinfo->max_v_samp_factor * DCTSIZE);

  for (ci = 0; ci < dstinfo->num_components; ci++) {
    compptr = dstinfo->comp_info + ci;
    comp_height = MCU_rows * compptr->v_samp_factor;
    for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks;
	 dst_blk_y += compptr->v_samp_factor) {
      dst_buffer = (*srcinfo->mem->access_virt_barray)
	((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y,
	 (JDIMENSION) compptr->v_samp_factor, TRUE);
      for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
	for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks;
	     dst_blk_x += compptr->h_samp_factor) {
	  src_buffer = (*srcinfo->mem->access_virt_barray)
	    ((j_common_ptr) srcinfo, src_coef_arrays[ci], dst_blk_x,
	     (JDIMENSION) compptr->h_samp_factor, FALSE);
	  for (offset_x = 0; offset_x < compptr->h_samp_factor; offset_x++) {
	    dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x];
	    if (dst_blk_y < comp_height) {
	      /* Block is within the mirrorable area. */
	      src_ptr = src_buffer[offset_x]
		[comp_height - dst_blk_y - offset_y - 1];
	      for (i = 0; i < DCTSIZE; i++) {
		for (j = 0; j < DCTSIZE; j++) {
		  dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j];
		  j++;
		  dst_ptr[j*DCTSIZE+i] = -src_ptr[i*DCTSIZE+j];
		}
	      }
	    } else {
	      /* Edge blocks are transposed but not mirrored. */
	      src_ptr = src_buffer[offset_x][dst_blk_y + offset_y];
	      for (i = 0; i < DCTSIZE; i++)
		for (j = 0; j < DCTSIZE; j++)
		  dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j];
	    }
	  }
	}
      }
    }
  }
}


LOCAL(void)
do_rot_180 (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
	    jvirt_barray_ptr *src_coef_arrays,
	    jvirt_barray_ptr *dst_coef_arrays)
/* 180 degree rotation is equivalent to
 *   1. Vertical mirroring;
 *   2. Horizontal mirroring.
 * These two steps are merged into a single processing routine.
 */
{
  JDIMENSION MCU_cols, MCU_rows, comp_width, comp_height, dst_blk_x, dst_blk_y;
  int ci, i, j, offset_y;
  JBLOCKARRAY src_buffer, dst_buffer;
  JBLOCKROW src_row_ptr, dst_row_ptr;
  JCOEFPTR src_ptr, dst_ptr;
  jpeg_component_info *compptr;

  MCU_cols = dstinfo->image_width / (dstinfo->max_h_samp_factor * DCTSIZE);
  MCU_rows = dstinfo->image_height / (dstinfo->max_v_samp_factor * DCTSIZE);

  for (ci = 0; ci < dstinfo->num_components; ci++) {
    compptr = dstinfo->comp_info + ci;
    comp_width = MCU_cols * compptr->h_samp_factor;
    comp_height = MCU_rows * compptr->v_samp_factor;
    for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks;
	 dst_blk_y += compptr->v_samp_factor) {
      dst_buffer = (*srcinfo->mem->access_virt_barray)
	((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y,
	 (JDIMENSION) compptr->v_samp_factor, TRUE);
      if (dst_blk_y < comp_height) {
	/* Row is within the vertically mirrorable area. */
	src_buffer = (*srcinfo->mem->access_virt_barray)
	  ((j_common_ptr) srcinfo, src_coef_arrays[ci],
	   comp_height - dst_blk_y - (JDIMENSION) compptr->v_samp_factor,
	   (JDIMENSION) compptr->v_samp_factor, FALSE);
      } else {
	/* Bottom-edge rows are only mirrored horizontally. */
	src_buffer = (*srcinfo->mem->access_virt_barray)
	  ((j_common_ptr) srcinfo, src_coef_arrays[ci], dst_blk_y,
	   (JDIMENSION) compptr->v_samp_factor, FALSE);
      }
      for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
	if (dst_blk_y < comp_height) {
	  /* Row is within the mirrorable area. */
	  dst_row_ptr = dst_buffer[offset_y];
	  src_row_ptr = src_buffer[compptr->v_samp_factor - offset_y - 1];
	  /* Process the blocks that can be mirrored both ways. */
	  for (dst_blk_x = 0; dst_blk_x < comp_width; dst_blk_x++) {
	    dst_ptr = dst_row_ptr[dst_blk_x];
	    src_ptr = src_row_ptr[comp_width - dst_blk_x - 1];
	    for (i = 0; i < DCTSIZE; i += 2) {
	      /* For even row, negate every odd column. */
	      for (j = 0; j < DCTSIZE; j += 2) {
		*dst_ptr++ = *src_ptr++;
		*dst_ptr++ = - *src_ptr++;
	      }
	      /* For odd row, negate every even column. */
	      for (j = 0; j < DCTSIZE; j += 2) {
		*dst_ptr++ = - *src_ptr++;
		*dst_ptr++ = *src_ptr++;
	      }
	    }
	  }
	  /* Any remaining right-edge blocks are only mirrored vertically. */
	  for (; dst_blk_x < compptr->width_in_blocks; dst_blk_x++) {
	    dst_ptr = dst_row_ptr[dst_blk_x];
	    src_ptr = src_row_ptr[dst_blk_x];
	    for (i = 0; i < DCTSIZE; i += 2) {
	      for (j = 0; j < DCTSIZE; j++)
		*dst_ptr++ = *src_ptr++;
	      for (j = 0; j < DCTSIZE; j++)
		*dst_ptr++ = - *src_ptr++;
	    }
	  }
	} else {
	  /* Remaining rows are just mirrored horizontally. */
	  dst_row_ptr = dst_buffer[offset_y];
	  src_row_ptr = src_buffer[offset_y];
	  /* Process the blocks that can be mirrored. */
	  for (dst_blk_x = 0; dst_blk_x < comp_width; dst_blk_x++) {
	    dst_ptr = dst_row_ptr[dst_blk_x];
	    src_ptr = src_row_ptr[comp_width - dst_blk_x - 1];
	    for (i = 0; i < DCTSIZE2; i += 2) {
	      *dst_ptr++ = *src_ptr++;
	      *dst_ptr++ = - *src_ptr++;
	    }
	  }
	  /* Any remaining right-edge blocks are only copied. */
	  for (; dst_blk_x < compptr->width_in_blocks; dst_blk_x++) {
	    dst_ptr = dst_row_ptr[dst_blk_x];
	    src_ptr = src_row_ptr[dst_blk_x];
	    for (i = 0; i < DCTSIZE2; i++)
	      *dst_ptr++ = *src_ptr++;
	  }
	}
      }
    }
  }
}


LOCAL(void)
do_transverse (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
	       jvirt_barray_ptr *src_coef_arrays,
	       jvirt_barray_ptr *dst_coef_arrays)
/* Transverse transpose is equivalent to
 *   1. 180 degree rotation;
 *   2. Transposition;
 * or
 *   1. Horizontal mirroring;
 *   2. Transposition;
 *   3. Horizontal mirroring.
 * These steps are merged into a single processing routine.
 */
{
  JDIMENSION MCU_cols, MCU_rows, comp_width, comp_height, dst_blk_x, dst_blk_y;
  int ci, i, j, offset_x, offset_y;
  JBLOCKARRAY src_buffer, dst_buffer;
  JCOEFPTR src_ptr, dst_ptr;
  jpeg_component_info *compptr;

  MCU_cols = dstinfo->image_width / (dstinfo->max_h_samp_factor * DCTSIZE);
  MCU_rows = dstinfo->image_height / (dstinfo->max_v_samp_factor * DCTSIZE);

  for (ci = 0; ci < dstinfo->num_components; ci++) {
    compptr = dstinfo->comp_info + ci;
    comp_width = MCU_cols * compptr->h_samp_factor;
    comp_height = MCU_rows * compptr->v_samp_factor;
    for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks;
	 dst_blk_y += compptr->v_samp_factor) {
      dst_buffer = (*srcinfo->mem->access_virt_barray)
	((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y,
	 (JDIMENSION) compptr->v_samp_factor, TRUE);
      for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
	for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks;
	     dst_blk_x += compptr->h_samp_factor) {
	  src_buffer = (*srcinfo->mem->access_virt_barray)
	    ((j_common_ptr) srcinfo, src_coef_arrays[ci], dst_blk_x,
	     (JDIMENSION) compptr->h_samp_factor, FALSE);
	  for (offset_x = 0; offset_x < compptr->h_samp_factor; offset_x++) {
	    if (dst_blk_y < comp_height) {
	      src_ptr = src_buffer[offset_x]
		[comp_height - dst_blk_y - offset_y - 1];
	      if (dst_blk_x < comp_width) {
		/* Block is within the mirrorable area. */
		dst_ptr = dst_buffer[offset_y]
		  [comp_width - dst_blk_x - offset_x - 1];
		for (i = 0; i < DCTSIZE; i++) {
		  for (j = 0; j < DCTSIZE; j++) {
		    dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j];
		    j++;
		    dst_ptr[j*DCTSIZE+i] = -src_ptr[i*DCTSIZE+j];
		  }
		  i++;
		  for (j = 0; j < DCTSIZE; j++) {
		    dst_ptr[j*DCTSIZE+i] = -src_ptr[i*DCTSIZE+j];
		    j++;
		    dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j];
		  }
		}
	      } else {
		/* Right-edge blocks are mirrored in y only */
		dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x];
		for (i = 0; i < DCTSIZE; i++) {
		  for (j = 0; j < DCTSIZE; j++) {
		    dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j];
		    j++;
		    dst_ptr[j*DCTSIZE+i] = -src_ptr[i*DCTSIZE+j];
		  }
		}
	      }
	    } else {
	      src_ptr = src_buffer[offset_x][dst_blk_y + offset_y];
	      if (dst_blk_x < comp_width) {
		/* Bottom-edge blocks are mirrored in x only */
		dst_ptr = dst_buffer[offset_y]
		  [comp_width - dst_blk_x - offset_x - 1];
		for (i = 0; i < DCTSIZE; i++) {
		  for (j = 0; j < DCTSIZE; j++)
		    dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j];
		  i++;
		  for (j = 0; j < DCTSIZE; j++)
		    dst_ptr[j*DCTSIZE+i] = -src_ptr[i*DCTSIZE+j];
		}
	      } else {
		/* At lower right corner, just transpose, no mirroring */
		dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x];
		for (i = 0; i < DCTSIZE; i++)
		  for (j = 0; j < DCTSIZE; j++)
		    dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j];
	      }
	    }
	  }
	}
      }
    }
  }
}


/* Request any required workspace.
 *
 * We allocate the workspace virtual arrays from the source decompression
 * object, so that all the arrays (both the original data and the workspace)
 * will be taken into account while making memory management decisions.
 * Hence, this routine must be called after jpeg_read_header (which reads
 * the image dimensions) and before jpeg_read_coefficients (which realizes
 * the source's virtual arrays).
 */

GLOBAL(void)
jtransform_request_workspace (j_decompress_ptr srcinfo,
			      jpeg_transform_info *info)
{
  jvirt_barray_ptr *coef_arrays = NULL;
  jpeg_component_info *compptr;
  int ci;

  if (info->force_grayscale &&
      srcinfo->jpeg_color_space == JCS_YCbCr &&
      srcinfo->num_components == 3) {
    /* We'll only process the first component */
    info->num_components = 1;
  } else {
    /* Process all the components */
    info->num_components = srcinfo->num_components;
  }

  switch (info->transform) {
  case JXFORM_NONE:
  case JXFORM_FLIP_H:
    /* Don't need a workspace array */
    break;
  case JXFORM_FLIP_V:
  case JXFORM_ROT_180:
    /* Need workspace arrays having same dimensions as source image.
     * Note that we allocate arrays padded out to the next iMCU boundary,
     * so that transform routines need not worry about missing edge blocks.
     */
    coef_arrays = (jvirt_barray_ptr *)
      (*srcinfo->mem->alloc_small) ((j_common_ptr) srcinfo, JPOOL_IMAGE,
	SIZEOF(jvirt_barray_ptr) * info->num_components);
    for (ci = 0; ci < info->num_components; ci++) {
      compptr = srcinfo->comp_info + ci;
      coef_arrays[ci] = (*srcinfo->mem->request_virt_barray)
	((j_common_ptr) srcinfo, JPOOL_IMAGE, FALSE,
	 (JDIMENSION) jround_up((long) compptr->width_in_blocks,
				(long) compptr->h_samp_factor),
	 (JDIMENSION) jround_up((long) compptr->height_in_blocks,
				(long) compptr->v_samp_factor),
	 (JDIMENSION) compptr->v_samp_factor);
    }
    break;
  case JXFORM_TRANSPOSE:
  case JXFORM_TRANSVERSE:
  case JXFORM_ROT_90:
  case JXFORM_ROT_270:
    /* Need workspace arrays having transposed dimensions.
     * Note that we allocate arrays padded out to the next iMCU boundary,
     * so that transform routines need not worry about missing edge blocks.
     */
    coef_arrays = (jvirt_barray_ptr *)
      (*srcinfo->mem->alloc_small) ((j_common_ptr) srcinfo, JPOOL_IMAGE,
	SIZEOF(jvirt_barray_ptr) * info->num_components);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区三区国色天香| 亚洲精品国产a| 亚洲小说春色综合另类电影| 不卡欧美aaaaa| 亚洲欧美视频在线观看| 99视频一区二区三区| 亚洲精品中文在线观看| 欧美欧美欧美欧美首页| 国产露脸91国语对白| 国产精品高潮呻吟| 在线精品视频一区二区三四| 亚洲一区免费在线观看| 亚洲成人综合在线| 欧美国产国产综合| 午夜精品久久久久| 欧美高清在线一区二区| 欧美日韩你懂得| 成人一道本在线| 免费高清不卡av| 国产精品色眯眯| 欧美性大战久久| 国产成人亚洲综合色影视 | 色婷婷激情久久| 欧美一卡二卡三卡四卡| av在线播放不卡| 麻豆一区二区在线| 日韩av一区二区三区四区| 一区二区在线观看免费视频播放| 日韩精品一区二区三区视频播放| 色视频成人在线观看免| 一区二区三区四区乱视频| 日韩一区二区在线观看视频| 在线观看中文字幕不卡| 在线看国产一区二区| 色综合天天综合| 91久久人澡人人添人人爽欧美| 成人永久aaa| 国产露脸91国语对白| 韩国三级中文字幕hd久久精品| 日韩精品午夜视频| 久久69国产一区二区蜜臀| 欧美精品第一页| 欧美精品乱码久久久久久| 欧美日韩在线电影| 日韩一级完整毛片| 欧美xxxxxxxx| 中文字幕中文字幕中文字幕亚洲无线| www亚洲一区| 一区二区三区电影在线播| 亚洲va欧美va国产va天堂影院| 制服丝袜国产精品| 欧美精品一区二区三区四区 | 国产精品久久久久一区二区三区共| 欧美午夜电影网| 天天综合网天天综合色| 日韩福利电影在线观看| 美国av一区二区| 欧美丝袜自拍制服另类| 久久色.com| 日韩国产欧美视频| 波多野结衣视频一区| 国产一区美女在线| 在线中文字幕不卡| 国产日韩欧美一区二区三区综合| 中文字幕在线播放不卡一区| 久久精品国产亚洲一区二区三区| 国产高清亚洲一区| 欧美一区二区精品| 亚洲韩国一区二区三区| 91在线视频观看| 国产精品乱人伦一区二区| 日韩欧美久久久| 亚洲私人黄色宅男| 久久综合久久综合九色| 亚洲精品一二三| 色婷婷精品大视频在线蜜桃视频 | 99这里只有久久精品视频| 久久综合久色欧美综合狠狠| 麻豆精品在线播放| 日韩免费电影网站| 另类小说图片综合网| 26uuu精品一区二区在线观看| 亚洲一本大道在线| 日韩欧美一级二级三级久久久| 日本最新不卡在线| 欧美大尺度电影在线| 久久99精品国产.久久久久久| 日韩一区二区三区免费观看| 精品一区二区三区免费| 中文字幕va一区二区三区| 色婷婷综合五月| 日韩电影在线一区| 26uuu欧美| 91女神在线视频| 五月婷婷激情综合网| 久久蜜臀精品av| 欧美性感一区二区三区| 国产精品一区二区三区四区| 亚洲人成亚洲人成在线观看图片 | 一区二区三区丝袜| 精品噜噜噜噜久久久久久久久试看 | 久国产精品韩国三级视频| 精品噜噜噜噜久久久久久久久试看| 国产精品18久久久久久久久久久久| 日韩久久一区二区| 久久久综合网站| 欧美一区二区三区视频免费| a亚洲天堂av| 国产一区在线精品| 欧美一区二区成人6969| 国产精品综合二区| 蜜臀久久久99精品久久久久久| 亚洲免费在线电影| 日韩理论在线观看| 国产三级欧美三级日产三级99| 色综合久久九月婷婷色综合| 国产成人免费av在线| 日韩一区二区电影在线| 9191国产精品| 欧美日韩视频不卡| 色琪琪一区二区三区亚洲区| eeuss鲁一区二区三区| 成人中文字幕在线| 91在线porny国产在线看| 成人美女视频在线观看18| 成人成人成人在线视频| 成人做爰69片免费看网站| 国产激情精品久久久第一区二区| 激情图区综合网| 床上的激情91.| 欧美伊人精品成人久久综合97| 91丨porny丨最新| 欧美日韩久久久| 欧美一区二区三级| 精品国产乱子伦一区| 中文字幕久久午夜不卡| 亚洲精品国产一区二区精华液 | 成人福利视频在线| 欧美亚洲图片小说| 日韩欧美激情四射| 一区二区三区在线观看视频| 蜜臀久久99精品久久久久久9| 国产精品一二三四区| 欧美做爰猛烈大尺度电影无法无天| 欧美日韩精品一区二区三区蜜桃| 精品精品国产高清一毛片一天堂| 久久伊99综合婷婷久久伊| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲精品视频在线观看免费| 蜜臀久久久99精品久久久久久| 在线影院国内精品| 91精彩视频在线观看| 久久久精品国产99久久精品芒果 | 欧美激情在线观看视频免费| 亚洲国产成人精品视频| 91色在线porny| 国产日韩av一区二区| 老司机精品视频一区二区三区| 成人国产精品免费观看视频| 欧美精品一区二区三区很污很色的 | 久久精品国产精品亚洲红杏| 91福利区一区二区三区| 亚洲一二三区在线观看| 91免费在线看| 亚洲最新视频在线观看| 99久久久无码国产精品| 综合分类小说区另类春色亚洲小说欧美| 久久99精品一区二区三区| 精品粉嫩aⅴ一区二区三区四区| 亚洲亚洲人成综合网络| 欧美一区二区人人喊爽| 国产在线观看一区二区| 日韩欧美中文字幕公布| 国产一区二区免费在线| 国产欧美一区二区精品忘忧草| 国产精一区二区三区| 中文字幕亚洲区| 在线成人av网站| 国产激情精品久久久第一区二区| 国产精品久久夜| 制服丝袜亚洲精品中文字幕| 高清免费成人av| 亚洲图片欧美视频| 中文字幕免费不卡在线| 5月丁香婷婷综合| 一本一道久久a久久精品| 麻豆精品新av中文字幕| 亚洲色图都市小说| 国产视频在线观看一区二区三区 | 欧美亚洲一区二区在线| 国产精品一区二区在线观看不卡| 亚洲综合成人在线| 最新不卡av在线| 中文字幕乱码一区二区免费| 91精品国产一区二区| 欧美日韩综合色| 在线免费亚洲电影| 丁香婷婷深情五月亚洲| 热久久一区二区| 日韩国产欧美三级|