PixelGrabber获得图片的像素点值的数组变换后如何还原成图片
代码和输出的结果数组如下
我要改变数组元素的值后把它在还原成图片 该怎么做 求高手帮忙 小弟初学java
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.image.ImageObserver;
import java.awt.image.PixelGrabber;
import java.io.File;
import java.io.IOException;public class GetImg { public static void main(String args[]){
GetImg gi = new GetImg();
File _file = new File("D:\\毕业论文资料\\图片\\MyZone.jpg"); //读入文件
//Picture p1 = new Picture("D:\\毕业论文资料\\图片\\MyZone.jpg");
Image img;
try {
img = javax.imageio.ImageIO.read(_file);//构造Image对象
int wideth=img.getWidth(null); //得到源图宽
int height=img.getHeight(null); //得到源图长
System.out.println("宽和长"+wideth+height);
int buffer[] = new int[wideth*height];
buffer = gi.pixelGrabber(buffer,img);
for(int i =0;i<wideth*height;i++){
if(i%wideth==0)System.out.println();
System.out.printf("%-10d",buffer[i]);
}
} catch (IOException e) {
e.printStackTrace();
}
}
private int[] pixelGrabber(int buffer[],Image img) {
try {
int wideth=img.getWidth(null); //得到源图宽
int height=img.getHeight(null); //得到源图长
/* MediaTracker tracker = new MediaTracker(null);
tracker.addImage(img, 0);
tracker.waitForAll(); */
PixelGrabber grabber = new PixelGrabber(img, 0, 0, wideth, height, buffer, 0, wideth);
try {
grabber.grabPixels();
} catch (InterruptedException e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
return buffer;
}
}
这是部分值{ -1 -1 -1 -1 -3750202 -3750202 -3750202
-3750202 -3750202 -3750202 -3815995 -3815995 -3552823 -197380 -1 }
代码和输出的结果数组如下
我要改变数组元素的值后把它在还原成图片 该怎么做 求高手帮忙 小弟初学java
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.image.ImageObserver;
import java.awt.image.PixelGrabber;
import java.io.File;
import java.io.IOException;public class GetImg { public static void main(String args[]){
GetImg gi = new GetImg();
File _file = new File("D:\\毕业论文资料\\图片\\MyZone.jpg"); //读入文件
//Picture p1 = new Picture("D:\\毕业论文资料\\图片\\MyZone.jpg");
Image img;
try {
img = javax.imageio.ImageIO.read(_file);//构造Image对象
int wideth=img.getWidth(null); //得到源图宽
int height=img.getHeight(null); //得到源图长
System.out.println("宽和长"+wideth+height);
int buffer[] = new int[wideth*height];
buffer = gi.pixelGrabber(buffer,img);
for(int i =0;i<wideth*height;i++){
if(i%wideth==0)System.out.println();
System.out.printf("%-10d",buffer[i]);
}
} catch (IOException e) {
e.printStackTrace();
}
}
private int[] pixelGrabber(int buffer[],Image img) {
try {
int wideth=img.getWidth(null); //得到源图宽
int height=img.getHeight(null); //得到源图长
/* MediaTracker tracker = new MediaTracker(null);
tracker.addImage(img, 0);
tracker.waitForAll(); */
PixelGrabber grabber = new PixelGrabber(img, 0, 0, wideth, height, buffer, 0, wideth);
try {
grabber.grabPixels();
} catch (InterruptedException e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
return buffer;
}
}
这是部分值{ -1 -1 -1 -1 -3750202 -3750202 -3750202
-3750202 -3750202 -3750202 -3815995 -3815995 -3552823 -197380 -1 }
解决方案 »
- 在公司无聊,就写了个文件加密的软件,各位看看。。。
- 求助:js循环输出set
- MyBatis的parameterMap问题
- Jsp中怎样发送邮件啊???
- TOMCAT移植到WEBLOGIC92中的问题
- 在 Struts2+Spring3.0+hibernate3.6中怎么统计用户在线时间?
- 上海有没有好的java+日语培训的机构,Help..
- JAVA中如何校验是否本地字符
- PowerCenter 9 数据增量抽取
- jb7+wl6.1开发ejb发布后调用的问题?
- hibernate sqlQuery 与实体类的映射关系问题
- 添加报IllegalArgumentException occurred calling getter错误
// 将数组中的象素产生一个图像
Image tempImg=Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(iw,ih, pixels, 0, iw)); 可以参考我的博客
http://blog.csdn.net/gl74gs48/article/details/4102070