Java实现图片导入和图片颜色处理

Java实现图片导入和图片颜色处理,第1张

Java实现图片导入和图片颜色处理

对于该项目我们首先明确实现它的整体思路:

1.首先给定一张照片

2.将照片的每一个像素点的rgb值存放在一个二维数组

3.再将照片的像素点显示出来

首先创建一个新的类来继承Jframe从而获得Jframe方法,在接下来要通过Jframe来获得相关功能,创建窗体并设置窗体基本信息:

public class ImagePad extends Jframe {
	//创建一个子类继承Jframe从而得到Jframe其中方法
public static void main(String args[]){
	//主函数通过对象调用窗体方法
	ImagePad ip=new ImagePad();
	ip.initUI();
}
public void initUI(){
	//此处通过调用Jframe中的方法创建一个窗体
	//设置窗体名称,尺寸,开关
	this.setTitle("图像处理");
	this.setSize(2000,1000);
	this.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
	this.setVisible(true);
}

然后我们实现将照片保存,这里我们采用二维数组,大致思路是将照片的每一个像素点的顺序以及rgb值保存在一个二维数组里,在读取照片时,我们采用文件流的方式,在这里我们需要注意到,我们保存图片的意义是方便使用它,因此要注意将返回值设定好是我们保存后的二维数组,供我们后续盖面照片颜色参数使用。

public int[][] getimagdata(String imgPath){
	File file=new File(imgPath);
	BufferedImage buffing=null;
	try{
		buffing=ImageIO.read(file)
;	}
	catch(IOException e){
		e.printStackTrace();
	}
	//获得照片尺寸
	int w=buffing.getWidth();
	int h=buffing.getHeight();
	int[][]imagarr=new int[w][h];
	//通过一个二维数组同时记录出每一个像素的位置和颜色比例
	for(int i=0;i 

那么接下来我们要将图片重新弄出来,思路是我们已经将每一个像素点的顺序以及rgb值保存了下俩,那么我们就可以将每一个像素点按顺序传出来,并通过Color类去改变每一个像素点的rgb值,从而达到我们想要的效果;

	//继承父类中窗体获取画笔方法
	//super.paint(g);
	//此处调用图像数据获得方法
	int [][]imagarr1=getimagdata("C:\Users177\Pictures\Saved Pictures\untitled.png");
	//得到二维数组行数
	int w=imagarr1.length;
	//得到二维数组列数
	int h=imagarr1[0].length;
	for(int i=0;i 

在这里我仅显示了我认为对该图片颜色处理的最好效果:

右侧为该图片处理后结果,经思考,不同位置的颜色经过统一处理后达到的效果并不尽如人意,那么在接下来的过程中我们将实现不同位置的具体处理。 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5709940.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存