import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ch1 {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
BufferedImage bi=ImageIO.read(new File("1.jpg"));//读取图像
BufferedImage nbi=fanxiang(bi);//处理图像
ImageIO.write(nbi, "jpg", new File("1b.jpg"));//输出图像
}
private static BufferedImage fanxiang(BufferedImage bi) {
//获得图像宽度和高度
int w=bi.getWidth();
int h=bi.getHeight();
//创建新的图像变量
BufferedImage nbi=new BufferedImage(w,h,BufferedImage.TYPE_3BYTE_BGR);
//循环处理输出图像nbi中的每一个像素
for(int y=0;y<h;y++){
for(int x=0;x<w;x++){
//原图bi坐标(x,y)处的像素值
int pixel=bi.getRGB(x,y);
//通过Color类处理红绿蓝三个通道的值
Color c=new Color(pixel);
int r=255-c.getRed();
int g=255-c.getGreen();
int b=255-c.getBlue();
Color nc=new Color(r,g,b);
int rgb=nc.getRGB();
//设置输出图像坐标(x,y)处的像素值
nbi.setRGB(x,y,rgb);
//nbi.setRGB(x,y,255*256*256);
}
}
return nbi;
}
}
或者
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class ch1 {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
BufferedImage bi=ImageIO.read(new File("input/1.jpg"));//读取图像
BufferedImage nbi=fanxiang(bi);//处理图像
ImageIO.write(nbi,"jpg",new File("output/fanxiang.jpg"));//输出图像
}
private static BufferedImage fanxiang(BufferedImage bi) {
//获得图像宽度和高度
int w=bi.getWidth();
int h=bi.getHeight();
//创建新的图像变量
BufferedImage nbi=new BufferedImage(w,h,BufferedImage.TYPE_3BYTE_BGR);
for(int y=0;y<h;y++){
for(int x=0;x<w;x++){
int pixel=bi.getRGB(x,y);
pixel=~pixel;
nbi.setRGB(x,y,pixel);
}
}
return nbi;
}
}