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

熱點內容
vf文件後綴 瀏覽:629
迅雷支持win10的版本 瀏覽:657
linux刪除非空目錄函數 瀏覽:414
審查元素查找qq相冊密碼 瀏覽:131
藍魔i10s升級包下載 瀏覽:140
蘋果7plus橫屏 瀏覽:392
ps1游戲放ps3哪個文件夾 瀏覽:505
微信能不能無法打開文件 瀏覽:609
adbexe文件放哪裡 瀏覽:810
linux源碼查看 瀏覽:371
挑戰者350升級 瀏覽:381
numbers誤刪文件 瀏覽:923
資料庫右鍵刪除的表怎麼恢復 瀏覽:377
天空網解壓密碼 瀏覽:583
拉薩網站布局該怎麼設計 瀏覽:416
零售數據怎麼用圖來表示 瀏覽:628
英雄無敵7win1064位 瀏覽:951
寧波pm編程技能培訓哪裡便宜 瀏覽:779
國外疫情數據哪裡准確 瀏覽:924
桌面上的部分文件不見了 瀏覽:453

友情鏈接