




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第6講圖像像素點的處理教學(xué)目標(biāo)與要求:了解圖像處理的原理以及雙緩沖技術(shù)了解Java捕獲屏幕圖像的原理教學(xué)重點、難點:1.教學(xué)重點:圖像處理的原理圖像處理具體執(zhí)行步驟雙緩沖技術(shù)如何捕獲屏幕圖像2.教學(xué)難點:應(yīng)用雙緩沖技術(shù)進行圖像處理提問:當(dāng)我們成功地加載和顯示圖像,對所得到的圖像的顯示效果并不滿意的情況下,我們將采取什么的方式來解決,以達到我們想要的顯示效果呢?6.1圖像處理的原理獲取加載了的圖像所有像素值,對這些像素值進行相應(yīng)的處理之后,重構(gòu)一個新的圖像。圖像處理的方法有:圖像變換、圖像編碼、圖像壓縮、圖像解碼等等。6.2圖像處理具體執(zhí)行步驟為:使用MediaTracker類加載圖像實例化PixelGrabber類使用其grabPixels()方法抓取圖像像素,生成了圖像像素數(shù)組對這個數(shù)組進行各種變換通過MemoryImageSource類將數(shù)組中的像素值重構(gòu)一個新的圖像使用paint()將新的圖像顯示出來(1)MediaTracker類是一個跟蹤多種媒體對象狀態(tài)的實用工具類。媒體對象可以包括音頻剪輯和圖像,但目前僅支持圖像。要使用媒體跟蹤器,需要創(chuàng)建一個MediaTracker
實例調(diào)用addImage()方法向此媒體跟蹤器正在跟蹤的圖像列表添加一個圖像。另外,還可以為每個圖像分配一個惟一的標(biāo)識符,此標(biāo)識符可控制獲取圖像的優(yōu)先級順序。調(diào)用waitForID()方法開始加載由此媒體跟蹤器跟蹤且具有指定標(biāo)識符的所有圖像。
其創(chuàng)建格式如下:
MediaTrackertracker1=newMediaTracker(this);
img=Toolkit.getDefaultToolkit().getImage("a.jpg");//其中0為圖像的標(biāo)識符tracker1.addImage(img,0);//加載由此媒體跟蹤器跟蹤且標(biāo)識符為0的圖像try{tracker1.waitForID(0);}
catch(InterruptedExceptione){}(2)實例化PixelGrabber類,提供了三種不同的構(gòu)造方式:PixelGrabber(Image
img,int
x,int
y,int
w,int
h,boolean
forceRGB)
創(chuàng)建一個PixelGrabber
對象,以便從指定的圖像中抓取像素矩形部分(x,y,w,h)。forceRGB為像素的傳遞方式,其值為true時,表示以RGB方式傳遞像素;其值為false時,表示以圖像構(gòu)造器方式傳遞像素。
PixelGrabber(Image
img,int
x,int
y,int
w,int
h,int[]
pix,int
off,int
scansize)
創(chuàng)建一個PixelGrabber
對象,以便從指定的圖像中將像素矩形部分(x,y,w,h)抓取到給定的數(shù)組中。Off為存放第一個像素的位置,通常取0;scansize為每行的像素個數(shù),即圖像的寬度。
PixelGrabber(ImageProducer
ip,int
x,int
y,int
w,int
h,int[]
pix,int
off,int
scansize)
創(chuàng)建一個PixelGrabber
對象,以便從指定ImageProducer(圖像構(gòu)造器)所生成的圖像中將像素矩形部分(x,y,w,h)抓取到給定的數(shù)組中。(3)PixelGrabber類的對象調(diào)用grabPixels()方法將抓取到的圖像像素存入數(shù)組中,注意要使用try-catch結(jié)構(gòu)。(4)針對該數(shù)組中的像素值,對其進行各種變換,以達到我們處理圖像的目的。比如,可對其RGB值和Alpha值重新計算和賦值,從而得到一個具有不同透明度與顏色值的像素數(shù)組。(5)通過MemoryImageSource類構(gòu)造一個使用變換過的數(shù)組為Image對象生成數(shù)據(jù)的ImageProducer對象imgprd,調(diào)用createImage(imgprd)方法便可產(chǎn)生一個新圖像。MemoryImageSource類創(chuàng)建格式如下:ImageProducer
MemoryImageSource(int
w,int
h,int[]
pix,int
off,int
scan)
構(gòu)造一個使用默認RGBColorModel
中的整數(shù)數(shù)組為Image對象生成數(shù)據(jù)的ImageProducer
對象。(6)通過paint()即可將新圖像顯示出來應(yīng)用示例:Image1.java(本程序為改變圖像的透明值)6.3雙緩沖技術(shù)緩沖是在內(nèi)存或顯存中開辟一塊與屏幕一樣大小的存儲區(qū)域,作為緩沖屏幕。將下一幀要顯示的圖像繪制到這個緩沖屏幕上面,在顯示的時候?qū)⑻摂M屏幕中的數(shù)據(jù)復(fù)制到可見視頻緩存區(qū)里面去。
在Java程序中要實現(xiàn)這個技術(shù),首先在緩沖區(qū)建立一個繪制圖像的Graphics對象,進行paint()的操作,當(dāng)完成了以后再把它顯示到屏幕上,由于從緩沖區(qū)讀取數(shù)據(jù)的速度很快,就不會出現(xiàn)閃爍了。
雙緩沖技術(shù)優(yōu)缺點:優(yōu)點:圖形繪制過程是在不可見的虛擬屏幕中進行,所以可以消除屏幕的閃爍。缺點:在顯示的時候?qū)⑻摂M屏幕中的數(shù)據(jù)復(fù)制到可見視頻緩存區(qū)里面去,由于要復(fù)制大量的數(shù)據(jù),速度可能就會慢一些。如何使用雙緩沖建立圖像緩沖區(qū)?其創(chuàng)建方式如下所示:try{
img=createImage(800,600);//建立圖像對象緩沖區(qū)
graphics=img.getGraphics();//得到繪制圖像的graphics對象
}catch(NullPointerExceptione){}graphics.drawImage(cropped,0,30,this);//在屏幕外的緩沖區(qū)中繪
//制圖像
g.drawImage(img,0,0,this);//在屏幕上顯示圖像
}
6.4Java捕獲屏幕圖像的原理“捕獲屏幕圖像”是比較接近操作系統(tǒng)底層的操作,這里我們提供一個“機器人”Robot類,該類用于產(chǎn)生與本地操作系統(tǒng)有關(guān)的底層輸入、測試應(yīng)用程序運行或自動控制應(yīng)用程序運行。Robot類提供一個createScreenCapture()方法,可以直接將全屏幕或某個屏幕區(qū)域的像素復(fù)制到一個BufferedImage對象中,只需要將該對象寫入到一個圖像文件中,就完成了屏幕到圖像的復(fù)制過程。(1)Robot類createScreenCapture()方法的創(chuàng)建格式如下:BufferedImage
createScreenCapture(Rectangle
screenRet)將指定矩形區(qū)域內(nèi)的屏幕像素復(fù)制下來產(chǎn)生一個BufferedImage對象。(2)Robot類應(yīng)用的主代碼段如下:
Robotrobot=null;try{robot=newRobot();}catch(Exception
er){}RectanglescreenRect=null;
intwidth=getToolkit().getScreenSize().width;
intheight=getToolkit().getScreenSize().height;
screenRect=newRectangle(0,0,width,height);//將指定矩形區(qū)域內(nèi)的屏幕像素復(fù)制下來產(chǎn)生一個BufferedImage對象BufferedImageimage=robot.createScreenCapture(screenRect);//創(chuàng)建一個圖像文件Filefile=newFile("ScreenCapture.jpg");
//將截取到的屏幕圖像寫到圖像文件file中
javax.imageio.ImageIO.write(image,"jpg",file);
repaint();…publicvoidpaint(Graphicsg){g.drawImage(image,0,0,800,600,this);}(3)應(yīng)用示例:MakeJPEG.java(應(yīng)用Robot類捕獲屏幕圖像)教學(xué)總結(jié):
1.掌握應(yīng)用雙緩沖技術(shù)進行圖像處理,以及了解雙緩沖技術(shù)優(yōu)缺點。2.了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年汽車買賣合同正規(guī)版本范文
- 魚菜共生系統(tǒng)知到課后答案智慧樹章節(jié)測試答案2025年春寧夏大學(xué)
- 202x手繪畢業(yè)答辯模板
- 2025《合同管理規(guī)程》聯(lián)合簽署
- 2025街頭小吃攤位租賃合同
- 2025汽車銷售代理合同示范文本格式
- 2024年清遠市公安局選調(diào)事業(yè)編制人員真題
- 女方非婚生子撫養(yǎng)協(xié)議(2025年版)
- 深圳注冊公司合同范本
- 2024年福建寧德職業(yè)技術(shù)學(xué)院招聘真題
- 1到六年級古詩全部打印
- 重訪灰色地帶:傳播研究史的書寫與記憶
- 處方書寫調(diào)劑發(fā)藥服務(wù)質(zhì)量督導(dǎo)檢查記錄
- 成品出貨檢驗報告模板
- 全國職業(yè)院校技能大賽(花藝賽項)備考試題庫(匯總)
- 部編小學(xué)語文(6年級下冊第6單元)作業(yè)設(shè)計
- 斜拉橋索塔鋼錨箱安裝施工工法
- (167)-晴雯課件1紅樓夢人物藝術(shù)鑒賞
- (新版)藝術(shù)素養(yǎng)基礎(chǔ)知識考試題庫(400題)
- 2020年青海省中考化學(xué)試卷附真卷答案解析版
- 遙感科學(xué)與技術(shù)及其在國土資源中的應(yīng)用
評論
0/150
提交評論