導航:首頁 > 編程語言 > 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圖形數組相關的資料

熱點內容
除了編程還有什麼技術 瀏覽:64
為什麼程序員討厭中文編程 瀏覽:338
數控車床編程g40是什麼意思 瀏覽:782
人們花錢為什麼逐漸網路化 瀏覽:272
如何用編程辦理電信業務 瀏覽:189
數控磨床小圓弧怎麼編程 瀏覽:390
桐鄉編程貓在哪裡 瀏覽:69
同一文件夾存儲大量文件 瀏覽:126
chrome修改js 瀏覽:842
用pad怎麼發word文件怎麼打開 瀏覽:465
哪個網站有幼 瀏覽:299
航班APP哪個最好 瀏覽:590
網路原創如何增強教育活力 瀏覽:527
蘋果第三方打開文件 瀏覽:310
蘋果電腦桌面移除的文件夾怎麼恢復 瀏覽:292
在文件名前添加字元 瀏覽:424
javaexcel導出控制項 瀏覽:484
怎麼樣粉碎文件 瀏覽:798
谷歌網站怎麼更新 瀏覽:934
svn命令行刪除文件夾 瀏覽:277

友情鏈接