热门文章

JAVA如何实现图片的任意方向反转

来源:青年人(Qnr.Cn) 时间:2010年01月21日 阅读: 贵港教育体育博彩有哪些平台网】 ?体育博彩有哪些平台书店

  package com.junit.test;

  import java.awt.image.BufferedImage;

  import java.io.File;

  import java.net.URL;

  import javax.imageio.ImageIO;

  import java.util.*;

  public class Test {

  public static void main(String [] args)

  {

  try {

  //本地地址或URL 的图片

  //BufferedImage bi = ImageIO.read(new URL("http://xuke.shfda.gov.cn/validatecode/codeimage.jsp"));

  BufferedImage bi = ImageIO.read(new File("D:\\333.jpg"));

  //截取任意区域的图片

  //BufferedImage subimg = bi.getSubimage(0, 0, 100, 30);

  int width = bi.getWidth();

  int height = bi.getHeight();

  System.out.println("w:"+width);

  System.out.println("h:"+height);

  int [][]datas = new int[width][height];

  int [][]datastmp = new int[width][height];

  for(int i = 0;i< height;i++)

  {

  for(int j = 0 ;j<>

  {

  datas[j][i]= bi.getRGB(j, i);

  datastmp[j][i]= bi.getRGB(j, i);

  System.out.print( bi.getRGB(j, i)+ " ");

  }

  System.out.println();

  }

  int [][] xz = XZ(datas,width,height,1);

  for(int i = 0;i< height;i++)

  {

  for(int j = 0 ;j<>

  {

  bi.setRGB(j, i, xz[j][i]);

  }

  }

  ImageIO.write(bi, "JPEG", new File("D:\\3334.jpg"));

  }

  /***

  * 图片旋转数据处理

  * @param datas

  * @param width

  * @param height

  * @param FX 0 为上下反转 1 为左右反转

  * @return

  */

  public static int [][] XZ(int [][] datas,int width,int height,int FX)

  {

  try {

  int[][] tmps= new int [width][height];

  if(FX==0)

  {

  for(int i = 0,a=height-1;i< height;i++,a--)

  {

  for(int j = 0 ,b=width-1;j<>

  {

  tmps[b][a] = datas[j][i];

  }

  }

  }

  else if (FX==1)

  {

  for(int i = 0;i< height;i++)

  {

  for(int j = 0 ,b=width-1;j<>

  {

  tmps[b][i] = datas[j][i];

  }

  }

  }

  return tmps;

  } catch (Exception e) {

  // TODO: handle exception

  System.out.println("ex:"+e.getMessage());

  return null;

  }

  }

收藏 打印文章 责任编辑:小草
上一篇:Java回归线之堆栈介绍[ 01-21 ]
下一篇:Java的传值和传址介绍[ 01-22 ]
感动 同情 无聊 愤怒 搞笑 难过 高兴 路过