导航:首页 > 编程语言 > java图形数组

java图形数组

发布时间:2024-04-27 18:41:31

java中图像与数组转换

按照你的要求编写的Java程序如下:( 要注意的地方见语句后面的注释)

importjava.awt.image.BufferedImage;
importjava.awt.image.RenderedImage;
importjava.io.File;
importjava.io.IOException;
importjavax.imageio.ImageIO;
publicclassImageWithArray{
publicstaticvoidmain(String[]args){
//读取图片到BufferedImage
BufferedImagebf=readImage("c:\tmp\6\female.png");//这里写你要读取的绝对路径+文件
//将图片转换为二维数组
int[][]rgbArray1=convertImageToArray(bf);
//输出图片到指定文件
writeImageFromArray("c:\tmp\2.png","png",rgbArray1);//这里写你要输出的绝对路径+文件名
System.out.println("图片输出完毕!");
}
(StringimageFile){
Filefile=newFile(imageFile);
BufferedImagebf=null;
try{
bf=ImageIO.read(file);
}catch(IOExceptione){
e.printStackTrace();
}
returnbf;
}
publicstaticint[][]convertImageToArray(BufferedImagebf){
//获取图片宽度和高度
intwidth=bf.getWidth();
intheight=bf.getHeight();
//将图片sRGB数据写入一维数组
int[]data=newint[width*height];
bf.getRGB(0,0,width,height,data,0,width);
//将一维数组转换为为二维数组
int[][]rgbArray=newint[height][width];
for(inti=0;i<height;i++)
for(intj=0;j<width;j++)
rgbArray[i][j]=data[i*width+j];
returnrgbArray;
}
(StringimageFile,Stringtype,int[][]rgbArray){
//获取数组宽度和高度
intwidth=rgbArray[0].length;
intheight=rgbArray.length;
//将二维数组转换为一维数组
int[]data=newint[width*height];
for(inti=0;i<height;i++)
for(intj=0;j<width;j++)
data[i*width+j]=rgbArray[i][j];
//将数据写入BufferedImage
BufferedImagebf=newBufferedImage(width,height,BufferedImage.TYPE_INT_BGR);
bf.setRGB(0,0,width,height,data,0,width);
//输出图片
try{
Filefile=newFile(imageFile);
ImageIO.write((RenderedImage)bf,type,file);
}catch(IOExceptione){
e.printStackTrace();
}
}
}

运行结果:

图片输出完毕!

原图:

⑵ 在JAVA中定义图片数组

为实现此意图需要分抄三段来实现:

1。 初始化: Image[] img=new Image[n];
for(int i=0;i<n;i++)循环读取装入图片文件
img[i]=Toolkit.getDefaultToolkit().createImage(....)//装入图片位置
}

2. 启动变换图片与刷新界面线程
run(){//线程入口
while(flag){
index++;
index%=n;(或写成if(index>n-1)index=0;)
repiant();//重绘
sleep(时间)//注意要try...catch
}
}

3. 绘图,在指定x,y位置画图
int index=0;
public void paint(Graphics g){
g.drawImage(img[index],x,y,this);
}

总结:
paint()方法专业绘图,就一条语句,切不可太复杂,要符合MVC模式
逻辑改变都要写到线程run方法中去,让run来改变当前需要显示的图片
如此 run负责逻辑,paint负责视图,符合MVC

不知是否是你想要的答案.

⑶ java写一个图形程序,让数组输出在图形界面上

已把程序文件打包上传了,并附上运算结果图。

importjavax.swing.*;
importjava.awt.*;
importjava.util.*;
importjava.awt.event.*;

{
Stringdata;
JButtonb1;
JLabell1;
publicShowDataInTheArrary(Stringa){
data=a;
setTitle("ShowDatainthearray");
setLayout(newGridLayout(2,1));
b1=newJButton("show");
l1=newJLabel();

b1.addActionListener(newMonitor());

add(l1);
add(b1);

pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}

{
publicvoidactionPerformed(ActionEvente){
l1.setText(data);
}
}

publicstaticvoidmain(String[]args){

StringarrayData="";
for(inti=0;i<args.length;i++)
arrayData+=args[i];
ShowDataInTheArraryb=newShowDataInTheArrary(arrayData);
}
}

⑷ 濡備綍鍦╦ava涓浣跨敤鏁扮粍

1銆侀栧厛鍙浠ヤ娇鐢⊿tring[] s=new String[6]锛屽畾涔変竴涓闀垮害涓6鐨勫瓧绗︿覆鏁扮粍锛屽畾涔変箣鍚庯紝鍙浠ュ瑰瓧绗︿覆鏁扮粍杩涜岃祴鍊硷紝濡備笅鍥炬墍绀恒

阅读全文

与java图形数组相关的资料

热点内容
支持百度网盘下载电影网 浏览:478
数据线怎么打成死结 浏览:144
英文生肉网 浏览:162
大学怎么学编程 浏览:622
如何用好压解压文件 浏览:332
如何给文件解密 浏览:476
无需下载就可以免费试看的最好的片 浏览:234
传媒与大数据中心 浏览:943
cmd命令行高级教程 浏览:521
有哪些僵尸片带黄色的 浏览:714
win10选择文件时自动全选 浏览:960
sync应用程序下载 浏览:512
韩国电影善良的嫂子谁主演的 浏览:343
长虹空调遥控什么app 浏览:10
风云cad文件咋样打开 浏览:312
苹果微信不锁屏密码 浏览:995
黄金名字的盗墓电影日本菲律宾 浏览:3
先机物联刷新网络什么意思 浏览:365
电影的过去式怎么说 浏览:45
qq健身名片背景图片 浏览:225

友情链接