網(wǎng)絡編程生成圖像_第1頁
網(wǎng)絡編程生成圖像_第2頁
網(wǎng)絡編程生成圖像_第3頁
網(wǎng)絡編程生成圖像_第4頁
網(wǎng)絡編程生成圖像_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

網(wǎng)絡編程生成圖像第1頁,課件共16頁,創(chuàng)作于2023年2月本章要點

在服務器端產(chǎn)生一個二進制的圖像數(shù)據(jù),并傳給瀏覽器顯示的技術(shù)。HTTP協(xié)議中的MIME類型Servlet向客戶端返回MIME類型(圖像)在服務器端生成統(tǒng)計圖形將圖形轉(zhuǎn)化成JPEG格式生成動態(tài)圖形以及傳輸圖形實例(三種方式) 見Word文檔第2頁,課件共16頁,創(chuàng)作于2023年2月Java中面向Web的圖形

產(chǎn)生圖形有兩種方式:(1)在客戶端Applet中產(chǎn)生圖形。 要求客戶端支持Applet。動態(tài)改變顯示在客戶端的圖形。--地理監(jiān)控、聯(lián)網(wǎng)游戲(2)在服務器端產(chǎn)生圖形。 簡單,可傳遞參數(shù)內(nèi)容,動態(tài)地從服務器上產(chǎn)生圖形,缺點是圖形一經(jīng)下載不能再被改變。--網(wǎng)上報表系統(tǒng)第3頁,課件共16頁,創(chuàng)作于2023年2月HTTP協(xié)議中的MIME類型MIME(MultipurposeInternetMailExtension)全稱為多用途網(wǎng)際郵件擴展。使用Internet郵件標準傳輸多媒體數(shù)據(jù)。服務器端向客戶端發(fā)送每個文件時,在頭部包含了描述文件類型的信息。MIME的形式:類型/子類型通用文件組類型文件組的一個具體類型第4頁,課件共16頁,創(chuàng)作于2023年2月

例如:Image/jpeg:客戶端程序把收到的數(shù)據(jù)作為圖形顯示。Image/gif:作為gif格式的圖形顯示。Audio/aiff:作為音頻流來播放。Application/msword:作為一個Word文檔來打開。Text/html:表示給瀏覽器的是一個HTML網(wǎng)頁。MIME的類型和子類型是在Content-type頭域中描述。P36表4-1常用的MIME中有關(guān)圖形和聲音的類型和子類型第5頁,課件共16頁,創(chuàng)作于2023年2月Servlet向客戶端返回MIME類型 通過響應對象的setContentType(String)方法來指定MIME類型:staticfinalprivateStringCONTENT_TYPE="image/jpeg";response.setContentType(CONTENT_TYPE);//指定MIME類型響應的MIME類型只能指定一次。當指定非文本的MIME類型后,不能再指定文本類型。第6頁,課件共16頁,創(chuàng)作于2023年2月Servlet向客戶端返回二進制數(shù)據(jù)不能使用針對文本的PrintWrite對象。<imgid=chartsrc=“servlet/ImageServlet?ChartType=Bar”width=300height=300>ServletAPI中提供了響應對象的getOutputStream()返回一個OutputStream對象,利用該對象寫入字節(jié)數(shù)組,將圖像傳給客戶端。第7頁,課件共16頁,創(chuàng)作于2023年2月操作前先把圖像流轉(zhuǎn)化成二進制數(shù)組ByteArrayOutputStreambyteOut=newByteArrayOutputStream();OutputStreamOut=res.getOutputStream();encoder=JPEGCodec.createJPEGEncoder(byteOut);encoder.encode(img);byte[]buf=byteOut.toByteArray();byteOut.close();res.setContentLength(buf.length);Out.write(buf);Out.close();第8頁,課件共16頁,創(chuàng)作于2023年2月在服務器端生成統(tǒng)計圖形相關(guān)類:設(shè)計模式為標準的MVC模式。(1)數(shù)據(jù)類----所有統(tǒng)計圖形的數(shù)據(jù)源;(MODEL)(2)繪圖類----根據(jù)數(shù)據(jù)類生成具體的統(tǒng)計圖形;(VIEW)(3)控制類----負責從客戶端得到生成統(tǒng)計數(shù)據(jù)所需的參數(shù),以及將產(chǎn)生的圖形(GIF或JPEG)傳送到客戶端。(Control)該類一般由Servlet完成。第9頁,課件共16頁,創(chuàng)作于2023年2月Sun公司沒有提供Image或BufferedImage編碼成GIF圖形的類。

在非標準Java類庫中,提供了將BufferedImage編碼成JPEG圖形的實用類。例中用Sun公司的com.sun.image.codec.jpeg包產(chǎn)生JPEG圖形。GIF編碼的工具包:/java/下載。第10頁,課件共16頁,創(chuàng)作于2023年2月產(chǎn)生圖形

(1)在Java中將圖形繪制出來。

繪圖的API在Java.awt.*包中。一般圖像用Image對象表示,對圖形進行編碼需要BufferedImage對象,該對象是Image的子類。第11頁,課件共16頁,創(chuàng)作于2023年2月//建立BufferedImage圖形對象protectedBufferedImagecreateImage(intw,inth,Colorbg){BufferedImageimg=newBufferedImage(w,h,BufferedImage.TYPE_INT_RGB);Graphicsg=img.getGraphics();//取得圖形環(huán)境g.setColor(bg);g.fillRect(0,0,w,h);returnimg;}靜態(tài)常量TYPE_INT_RGB是產(chǎn)生JPEG圖形必須的??稍谠摥h(huán)境上繪圖第12頁,課件共16頁,創(chuàng)作于2023年2月產(chǎn)生條形圖

主要利用兩種繪圖方法:voiddrawRect(intx,inty,intwidth,intheight);voidfillRect(intx,inty,intwidth,intheight);voidsetColor(Colorc);voiddrawString(Strings,intx,inty);Java的圖形環(huán)境提供了一系列的繪圖方法。例中繪制條形圖,使用數(shù)組DataArray作為數(shù)據(jù)源。 intDataArray[]={120,100,60,200};第13頁,課件共16頁,創(chuàng)作于2023年2月產(chǎn)生餅形圖

使用Graphics對象的兩種方法:voidfillArc(intx,inty,intwidth,intheight,intstartAngle,intangle);//填充扇形區(qū)域voiddrawLine(intx1,intx2,inty1,inty2); //用來繪制每個扇形區(qū)域的邊緣例中繪制條形圖,仍使用數(shù)組DataArray作為數(shù)據(jù)源。第14頁,課件共16頁,創(chuàng)作于2023年2月將繪制的圖形轉(zhuǎn)化成JPEG格式

創(chuàng)建了Image或者BufferedImage對象,并繪制好圖形后,需要將其轉(zhuǎn)化成GIF、JPEG或MIME規(guī)定的其它圖形類型,才能在瀏覽器中顯示。

轉(zhuǎn)換后buf字節(jié)數(shù)組中存儲了JPEG格式的圖形信息,可保存成文件,也可發(fā)送到瀏覽器顯示。第15頁,課件共16頁,創(chuàng)作于2023年2月轉(zhuǎn)換成JPEG格式的代碼

ByteArrayOutputStreambyteOut=newByteArrayOutputS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論