熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

JAVA實現圖片的任意方向反轉

2013-11-23 18:46:37  來源: Java核心技術 

  package comjunittest;

  import javaawtimageBufferedImage;

  import javaioFile;

  import URL;

  import javaximageioImageIO;

  import javautil*;

  public class Test {

  public static void main(String [] args)

  {

  try {

  //本地地址或URL 的圖片

  //BufferedImage bi = ImageIOread(new URL());

  BufferedImage bi = ImageIOread(new File(D:\\jpg));

  //截取任意區域的圖片

  //BufferedImage subimg = bigetSubimage( );

  int width = bigetWidth();

  int height = bigetHeight();

  Systemoutprintln(w:+width);

  Systemoutprintln(h:+height);

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

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

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

  {

  for(int j = ;j<width;j++)

  {

  datas[j][i]= bigetRGB(j i);

  datastmp[j][i]= bigetRGB(j i);

  Systemoutprint( bigetRGB(j i)+ );

  }

  Systemoutprintln();

  }

  int [][] xz = XZ(dataswidthheight);

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

  {

  for(int j = ;j<width;j++)

  {

  bisetRGB(j i xz[j][i]);

  }

  }

  ImageIOwrite(bi JPEG new File(D:\\jpg));

  }

  /***

  * 圖片旋轉數據處理

  * @param datas

  * @param width

  * @param height

  * @param FX 為上下反轉 為左右反轉

  * @return

  */

  public static int [][] XZ(int [][] datasint widthint heightint FX)

  {

  try {

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

  if(FX==)

  {

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

  {

  for(int j = b=width;j<width;j++b)

  {

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

  }

  }

  }

  else if (FX==)

  {

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

  {

  for(int j = b=width;j<width;j++b)

  {

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

  }

  }

  }

  return tmps;

  } catch (Exception e) {

  // TODO: handle exception

  Systemoutprintln(ex:+egetMessage());

  return null;

  }

  }


From:http://tw.wingwit.com/Article/program/Java/hx/201311/25710.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.