使用Java進行影像處理的一些基礎操作_java

來源:互聯網
上載者:User

映像是由一組像素構成,用二進位形式儲存的圖片。java語言支援GIF、JPEG和BMP這3種主要影像檔格式。java語言的影像處理功能被封裝在Image類中。
映像載入和輸出

在java程式中,映像也是對象,所以載入映像時,先要聲明Image對象,然後,利用getImage()方法把Image對象與影像檔聯絡起來。載入影像檔的方法有兩個:
Image getImage(URL url),url指明映像所在位置和檔案名稱。
Image getImage(URL url,String name),url指明映像所在位置,name是檔案名稱。

例如,以下代碼聲明Image對象,並用getImage()對象與影像檔聯絡起來:

  Image img = getImage(getCodeBase(),”family.jpg”);


URL(uniform Resource Location 統一資源定位器)對象用於標識資源的名字和地址,在WWW客戶機訪問Internet網上資源時使用。確定映像位置的方法有兩種:絕對位置與相對位置。取相對位置的方法有:
URL getCodeBase(),取小應用程式檔案所在的位置。
URL getDocumentBase(),取HTML檔案所在的位置。

例如,代碼:

  URL picURLA = new URL(getDocumentBase(),”imageSample1.gif”),    picURLB = new URL(getDocumentBase(),”pictures/imageSample.gif”);  Image imageA = getImage(picURLA),imageB = getImage(picURLB);

擷取映像資訊(屬性)的方法有:
getWidth(ImageObserver observer):取寬度;
getHeight(ImageObserver observer):取高度。

輸出映像的代碼寫在paint()方法中,有4種顯示映像的方法:

boolean drawImage(Image img,int x,int y,ImageObserver observer)boolean drawImage(Image img,int x,int y,Color bgcolor,ImageObserver observer)boolean drawImage(Image img,int x,int y,int width,int height,ImageObsever observer)boolean drawImage(Image img,int x,int y,int width,int height,Color bgcolor,ImageObsever observer)


參數img是Image對象,x,y是繪製映像矩形的左上方位置,observer是載入映像時的映像觀察器,bgcolor是顯示映像用的底色,width和height是顯示映像的矩形地區,當這個地區與映像的大小不同時,顯示映像就會有縮放處理。

Applet類也實現ImageObserver介面,常用this作為實參。參見以下代碼及注釋:
(1) g.drawImage(image1,0,0,this);//原圖顯示
(2) g.drawImage(image2,10,10,Color.red,this);//圖形加底色顯示
注意:如原圖的大小與給定的範圍不同,系統會自動縮放
(3) g.drawImage(labImag,0,0,this);// 原圖顯示
(4) g.grawImage(labImag,0,120,100,100,this);//縮放顯示
(5) g.grawImage(labImag,0,240,500,100,this);//縮放顯示

【例】小應用程式用init()或start()方法下載(擷取)映像,用paint()方法顯示得到的映像。

import java.applet.*;import java.awt.*;public class Example7_5 extends Applet{  Image myImag;  public void start(){    myImag = getImage(getCodeBase(),”myPic.jpg”);  }  public void paint(Graphics g){    g.drawImage(myImg,2,2,this);  }}

由於在Frame、JFrame和JPanel等類中沒有提供getImage()方法,它們載入映像需要使用java.awt.Toolkit中的Toolkit抽象類別,該類有載入影像檔的方法:

  • Image.getImage(String name):按指定的檔案名稱載入影像檔。
  • Image.getImage(URL url):統一資源定位器載入影像檔。

這樣,各種組件可以用getToolkit()方法得到Toolkit對象,然後在組件的paint()方法中通過Toolkit對象顯示映像。以下代碼示意這樣的用法:

  Toolkit tool = getToolkit();  URL url = new URL(http://www.weixueyuan.net/image.gif);  Image img = tool.getImage(url);


組件也可以使用Toolkit提供的靜態方法getDefaultToolkit()獲得一個預設的Toolkit對象,並用它載入映像。此時,載入映像的代碼常寫成這樣:

  Image img = Toolkit.getDefaultToolkit().getImage(url);

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.