java里边怎样对图片的像素矩阵进行修改并输出?
package logistic;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.imageio.ImageIO;
import javax.imageio.stream.FileImageOutputStream;
public class TestEncryption {
public static void main(String [] args) throws IOException{
//1.创建一个对象
ImageOne image1=new ImageOne();
//2.给Logistic赋初值,用于产生一段二进制随机数
image1.setInitialx0(0.996);
//3.读入图像文件
InputStream in = new FileInputStream("D:\\IMG_0029.JPG");
BufferedImage bi = ImageIO.read(in);
//OutputStream out =new FileOutputStream("D:\\bee1.jpg");
//4.求出图像的宽和高
int w=bi.getWidth();
int h=bi.getHeight();
int[] rgbArray=new int[w*h];
bi.getRGB(bi.getMinX(), bi.getMinY(), bi.getWidth(), bi.getHeight(), rgbArray, 0, 1);
System.out.println("");
int [] c=image1.intArray2bit(rgbArray,w,h);
//加密阶段
//产生二进制混沌序列
int [] g=image1.genericLogistic(0.996, w, h);
int [] d=image1.xor(c, g, w, h);
int[] rgbArray1=new int[w*h];
rgbArray1=image1.bit2intArray(d, w, h);
File file = new File("D:\\bee2.jpg");
bi.setRGB(0, 0, 220, 0,rgbArray1, 0, 1);//不知道这块为什么要把h写成越小越好
//bi.setRGB(0, 0, 220, 164,rgbArray1, 0, 1);
bi = bi.getSubimage(0,0,w,h);
ImageIO.write(bi, "jpg", file);
in.close();
}
}
//这个代码中的bi中的像素数组怎么没有变化?怎么改变它?
//我这个程序的目的是:读取一副图片,然后改变它的像素值,再输出来
。希望不吝赐教,谢谢