2015计算机二级考试指导:JAVA实现图片的任意方向反转
发布时间:2010/3/10 16:05:59 来源:城市学习网 编辑:MOON
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(Stringargs)
{
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 ;jwidth;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();
}
intxz = XZ(datas,width,height,1);
for(int i = 0;i height;i++)
{
for(int j = 0 ;jwidth;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 intXZ(intdatas,int width,int height,int FX)
{
try {
int tmps= new int [width][height];
if(FX0)
{
for(int i = 0,a=height-1;i height;i++,a)
{
for(int j = 0 ,b=width-1;jwidth;j++,b)
{
tmps[b][a] = datas[j][i];
}
}
}
else if (FX1)
{
for(int i = 0;i height;i++)
{
for(int j = 0 ,b=width-1;jwidth;j++,b)
{
tmps[b][i] = datas[j][i];
}
}
}
return tmps;
} catch (Exception e) {
// TODO: handle exception
System.out.println("ex:"+e.getMessage());
return null;
}
}