Java学习日记:读取图片并在界面上显示,你可以试试
引言:
已经学习了较多的界面知识,接下来我们将要进行图片处理,但是在此之前,我们需要了解图片读取。我们需要用到JFileChooser、FileNameExtensionFilter、java.io.File。
读取图片:
private String openFile() {
//创建对象
JFileChooser chooser = new JFileChooser("E:\\study\\Pictures");//在此添加你默认的文件夹地址
//文件选择器添加过滤
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"JPG & GIF Images", "jpg", "gif");//选择文件类型,我们主要需要的是图片,因此jpg、gif为我们的首选
chooser.setFileFilter(filter);//显示(打开文件)的选择器
int returnVal = chooser.showOpenDialog(null);
//判断返回值
if(returnVal == JFileChooser.APPROVE_OPTION) {
//获取选中的文件
File file = chooser.getSelectedFile();
//返回文件的绝对路径
return file.getAbsolutePath();
}else {
//没有选取文件
return "";
}
}
获取图片RGB信息:
private int[][] image2data(String imageName){ //imageName可以为图片路径,
// 我们用文件选择器得到路径,传入这里
java.io.File file=new File(imageName);
java.awt.image.BufferedImage bi=null;
//添加异常处理
try{
bi=javax.imageio.ImageIO.read(file);
}catch(Exception ef){
ef.printStackTrace();
};
//再来用:根据这个图片的宽和高,创建二维数组
int[][] data=new int[bi.getWidth()][bi.getHeight()];
//将图片中的数据,存到二维数组,对应位置
for(int i=0;i<bi.getWidth();i++){
for(int j=0;j<bi.getHeight();j++){
int t=bi.getRGB(i, j);//取图片对应位置的color值
data[i][j]=t;//存入数组
}
}
return data;
}
至此,我们获得了图片的RGB信息,接下来就可以利用这些信息将图片在JFrame界面上绘制出来。结合
Java学习日记:UI篇(8)–生成一个带菜单的界面我们可以做出一个简单的界面,在上面展示我们的图片。