首先導(dǎo)入各種宴兆需要的包:\x0d\x0aimport java.awt.Image;\x0d\x0aimport javax.imageio.ImageIO;\x0d\x0aimport java.io.*;\x0d\x0a讀取圖片的方法如下:\x0d\x0aImage[] array = new Image[10];\x0d\x0aImage image = ImageIO.read(new File("d:\\source.gif"));//根據(jù)你實(shí)際情況改文件路徑吧\x0d\x0aarray[0] = image;\x0d\x0a圖片讀出來了。\x0d\x0a\x0d\x0a如果你有一個(gè)Image對象,想把茄慶它寫入文件可以這樣做:\x0d\x0aBufferedImage image = ImageIO.read(new File("d:\\source.gif"));\x0d\x0a/顫祥握/要想保存這個(gè)對象的話你要把image聲明為BufferedImage 類型\x0d\x0aImageIO.write(image, "png", new File("f:\\test.png"));
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了平樂免費(fèi)建站歡迎大家使用!
//本程序演示媒體跟蹤器的用法,從圖像中剪切(抓?。┎糠謭D像的方法。
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
class ImagePanelB extends JPanel{
private Image image, blockImage;
public ImagePanelB(){
MediaTracker mt = new MediaTracker(this); //創(chuàng)建媒體跟蹤器mt
image = Toolkit.getDefaultToolkit().getImage("resource.gif");
mt.addImage(image,0); //將image列入0號編組并跟蹤image的逗型下載過程
try{ mt.waitForID(0); //等待圖像組編號為0的所有圖像下載完成
}catch(InterruptedException e){e.printStackTrace();}
int imageW =image.getWidth(this); //獲取圖像寬度,單位為像素
int imageH =image.getHeight(this); //獲取圖像高度,單位為像素
System.out.println("圖像的寬="+imageW+" 圖像的高="+imageH);
//準(zhǔn)備從image中剪出寬為w,高為h的一塊圖像
int w=imageW/2; int h=imageH/2;
PixelGrabber pg=null; //創(chuàng)建像素抓取器
MemoryImageSource ip=null; //創(chuàng)建內(nèi)存圖像源
Toolkit tool = getToolkit(); int pixels[]= new int[w*h];
/*建立像素抓取器pg。從image中抓取矩形區(qū)域中的像素。矩形區(qū)罩指友域左上角頂點(diǎn)坐標(biāo)為(0,0),矩形寬w,矩形高h(yuǎn)。w,h的單位是像素?cái)?shù)。抓取到的像素存于整數(shù)數(shù)組pixels中。第7個(gè)物槐參數(shù)是數(shù)組pixels中存儲第1個(gè)像素的下標(biāo),通常為0。第8個(gè)參數(shù)是所抓取的矩形區(qū)域的一行包含的像素個(gè)數(shù)。*/
pg = new PixelGrabber(image,0,0,w,h,pixels,0,w);
try{
pg.grabPixels(); //開始圖像的生產(chǎn)(抓取像素并存入pixels)
ip=new MemoryImageSource(w,h,pixels,0,w);
blockImage=tool.createImage(ip);
} catch(InterruptedException ie){}
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(image, 40, 20, this);
g.drawImage(blockImage, 240, 20, this);
}
}
class ImageFrameB extends JFrame{
public ImageFrameB(){
setTitle("LoadingImageB"); setSize(440, 200);
addWindowListener(new WindowAdapter(){//內(nèi)部類的匿名表示形式
public void windowClosing(WindowEvent e){ System.exit(0); }
} );
Container contentPane = getContentPane();
contentPane.add(new ImagePanelB());
}
}
public class LoadingImageB{
public static void main(String[] args){
JFrame frame = new ImageFrameB();
frame.setVisible(true);
}
}
可通過Icon接口進(jìn)行圖片操作。
new ImageIcon(這里放入圖像文件的路徑)//此為創(chuàng)建一個(gè)對象
getIconWidth()設(shè)置圖像寬度
getIconHeight()設(shè)置圖像長度
還有更多的對察余碰圖片的操作方法,可查看敗談API文檔。
下面是加入圖片的簡單效果源碼:package Swing02;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TestIcon {
public TestIcon(){
JFrame jf=new JFrame("加入圖片練習(xí)");
JPanel jp=new JPanel();
Icon ic=new ImageIcon("C:\\Documents and Settings\\tarena\\桌面\\牽手1.jpg");
JLabel jl=new JLabel(ic,JLabel.CENTER);
JButton jb=new JButton(ic);
GridLayout gl=new GridLayout(3,3);
String[] pos=new String[9];
for(int i=0;ipos.length;i++){
JButton jb1=new JButton();
jp.add(jb1);
jb1.setIcon(ic);
}
jf.add(jp);
jp.setLayout(gl);
//jf.add(jl);
//jf.add(jb);
jf.setLocation(300,200);//設(shè)置出現(xiàn)位置
jf.setSize(300,200);//設(shè)置大小
jf.setResizable(true);//設(shè)置窗口大小不可變
jf.setVisible(true);//設(shè)置可毀含見(必須放在最后)
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new TestIcon();
}
}
關(guān)于圖片的布局,可把圖片加入到JLabel中,然后用布局管理器對JLabel進(jìn)行布局就好了。