国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

使用Java進行圖像處理的一些基礎(chǔ)操作

2019-11-26 14:56:15
字體:
供稿:網(wǎng)友

圖像是由一組像素構(gòu)成,用二進制形式保存的圖片。java語言支持GIF、JPEG和BMP這3種主要圖像文件格式。java語言的圖像處理功能被封裝在Image類中。
圖像載入和輸出

在java程序中,圖像也是對象,所以載入圖像時,先要聲明Image對象,然后,利用getImage()方法把Image對象與圖像文件聯(lián)系起來。載入圖像文件的方法有兩個:
Image getImage(URL url),url指明圖像所在位置和文件名。
Image getImage(URL url,String name),url指明圖像所在位置,name是文件名。

例如,以下代碼聲明Image對象,并用getImage()對象與圖像文件聯(lián)系起來:

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


URL(uniform Resource Location 統(tǒng)一資源定位符)對象用于標識資源的名字和地址,在WWW客戶機訪問Internet網(wǎng)上資源時使用。確定圖像位置的方法有兩種:絕對位置與相對位置。取相對位置的方法有:
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)


參數(shù)img是Image對象,x,y是繪制圖像矩形的左上角位置,observer是加載圖像時的圖像觀察器,bgcolor是顯示圖像用的底色,width和height是顯示圖像的矩形區(qū)域,當這個區(qū)域與圖像的大小不同時,顯示圖像就會有縮放處理。

Applet類也實現(xiàn)ImageObserver接口,常用this作為實參。參見以下代碼及注釋:
(1) g.drawImage(image1,0,0,this);//原圖顯示
(2) g.drawImage(image2,10,10,Color.red,this);//圖形加底色顯示
注意:如原圖的大小與給定的范圍不同,系統(tǒng)會自動縮放
(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):統(tǒng)一資源定位符載入圖像文件。

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

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


組件也可以使用Toolkit提供的靜態(tài)方法getDefaultToolkit()獲得一個缺省的Toolkit對象,并用它加載圖像。此時,載入圖像的代碼常寫成這樣:

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 汕头市| 亳州市| 措美县| 怀来县| 阳原县| 辽宁省| 名山县| 阿克| 手游| 新乡市| 石楼县| 崇州市| 离岛区| 辽阳县| 长乐市| 垦利县| 韩城市| 邓州市| 怀远县| 靖江市| 彰武县| 古丈县| 秦安县| 红安县| 讷河市| 拉萨市| 乐昌市| 富源县| 闽侯县| 太仆寺旗| 海门市| 崇仁县| 五指山市| 隆子县| 盐津县| 陵川县| 且末县| 荣成市| 凤城市| 新建县| 清涧县|