自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何從JSP頁面?zhèn)魉蛣?dòng)態(tài)圖片

開發(fā) 后端
你是否曾經(jīng)想過從JSP頁面(或者servlet)中發(fā)送動(dòng)態(tài)產(chǎn)生的圖像?這篇文章會(huì)告訴你如何去做。

要運(yùn)行本文的代碼,你需要一個(gè)Tomcat或者其他支持JSP 1.1的Web服務(wù)器。

當(dāng)一個(gè)Web頁面帶有image/jpeg (或者其他的圖像格式)的MIME類型被發(fā)送時(shí),你的瀏覽器將那個(gè)返回結(jié)果當(dāng)作一個(gè)圖像,然后瀏覽器顯示圖像,作為頁面的一部分或者完全作為圖像自身。要為你的jsp頁面設(shè)置MIME類型,你需要設(shè)置頁面的contentType屬性:

然后你需要?jiǎng)?chuàng)建一個(gè)BufferedImage繪制你的動(dòng)態(tài)圖像:

BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);

創(chuàng)建完一個(gè)BufferedImage后,你需要得到圖形環(huán)境進(jìn)行繪制,一個(gè)Graphics或者Graphics2D對(duì)象:

<table cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=400 
align=center borderColorLight=black border=1> <tr> <td class=code style="FONT-SIZE: 9pt" bgColor=#e6e6e6> Graphics g = image.getGraphics(); // or Graphics2d g2d = image.createGraphics();</td></tr> </table>

從現(xiàn)在起你就可以繪制圖像內(nèi)容了。對(duì)圖形環(huán)境繪制就會(huì)畫到BufferedImage。最開始這個(gè)圖像都是黑色的,因此用你希望的背景顏色填充圖像是一個(gè)不錯(cuò)的主意,然后,當(dāng)你完成圖像的繪制,你需要dispose圖形環(huán)境:

<table cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=400 
align=center borderColorLight=black border=1>
<tr> <td class=code style="FONT-SIZE: 9pt" bgColor=#e6e6e6>
g.dispose();
// or
g2d.dispose();</td></tr>
</table>

一旦完成圖像的繪制,你在response中返回那個(gè)圖像。你可以使用非標(biāo)準(zhǔn)的com.sun.image.codec.jpeg包中的JPEGImageEncoder類編碼圖像,或者如果你使用JDK1.4,你可以使用標(biāo)準(zhǔn)的ImageIO類。在使用JPEGImageEncoder時(shí)有一個(gè)技巧,你必須從ServletResponse取來ServletOutputStream而不能使用隱含的JSP輸出變量out。

<table cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=400 
align=center borderColorLight=black border=1>
<tr> <td class=code style="FONT-SIZE: 9pt" bgColor=#e6e6e6>
ServletOutputStream sos = response.getOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);
encoder.encode(image);
// or
ImageIO.write(image, "JPEG", out);</td></tr>
</table>

這里有一個(gè)從所有的可能方案中(例如g.dispose();或者g2d.dispose();)選取的一個(gè)完整的范例.這個(gè)例子使用Graphics對(duì)象繪制一個(gè)隨機(jī)的多邊形,圖像通過JPEGImageEncoder繪制,你可以自由設(shè)置多邊形的頂點(diǎn)數(shù)得到更復(fù)雜的形狀,換言之,有更多頂點(diǎn)和邊。

要運(yùn)行這個(gè)范例,將從""之間的jsp代碼放到一個(gè)名為image.jsp的文件中,將那個(gè)文件放到你的web服務(wù)器可以找到的地方,在使用Tomcat的情況下是ROOT目錄,啟動(dòng)Tomcat,訪問http://localhost:8080/image.jsp

 <table cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=400 align=center borderColorLight=black border=1>
<tr> <td class=code style="FONT-SIZE: 9pt" bgColor=#e6e6e6>
?。?@ page contentType="image/jpeg"
  import="java.awt.*,java.awt.image.*,
  com.sun.image.codec.jpeg.*,java.util.*"
  %>  
 ?。?
  // Create image
  int width=200, height=200;
  BufferedImage image = new BufferedImage(width,
  height, BufferedImage.TYPE_INT_RGB);
  // Get drawing context  
  Graphics g = image.getGraphics();
  // Fill background
  g.setColor(Color.white);
  g.fillRect(0, 0, width, height);
  // Create random polygon
  Polygon poly = new Polygon();
  Random random = new Random();
  for (int i=0; i < 5; i++) {
  poly.addPoint(random.nextInt(width),
  random.nextInt(height));
  }
  // Fill polygon
  g.setColor(Color.cyan);
  g.fillPolygon(poly);
  // Dispose context
  g.dispose();
  // Send back image
  ServletOutputStream sos = response.getOutputStream();
  JPEGImageEncoder encoder =
  JPEGCodec.createJPEGEncoder(sos);
  encoder.encode(image);
  %>

【編輯推薦】

  1. 高性能、高彈性JSP和Servlet性能優(yōu)化
  2. JSTL和EL開發(fā)JSP頁面的優(yōu)勢(shì)及實(shí)現(xiàn)
  3. JSP中JavaBean應(yīng)用步驟詳解
責(zé)任編輯:楊鵬飛 來源: Java吧
相關(guān)推薦

2009-07-03 10:52:33

MIDletJSP頁面

2012-05-24 15:41:38

PHP

2009-07-02 13:36:24

動(dòng)態(tài)頁面JSP技術(shù)

2009-12-08 11:16:07

PHP動(dòng)態(tài)圖像創(chuàng)建

2009-07-02 14:24:02

JSP讀取數(shù)據(jù)庫

2009-06-30 15:22:55

JSP頁面

2009-08-11 13:27:09

C#動(dòng)態(tài)圖像按鈕

2009-07-06 09:34:19

JSP頁面

2009-07-01 18:50:29

Dreamweaver

2021-04-18 20:49:03

Pyecharts圖表 組件

2009-07-03 18:12:49

JSP頁面

2017-07-05 16:22:09

HTML5canvas動(dòng)態(tài)

2009-07-07 15:07:59

JSP上傳圖片

2009-07-06 10:00:31

JSP頁面?zhèn)髦?/a>

2009-03-16 15:07:20

JSP分頁window.openJSP表單

2009-06-10 17:03:36

JSP動(dòng)態(tài)生成

2021-05-13 15:23:31

人工智能深度學(xué)習(xí)

2009-07-02 09:25:41

JSP實(shí)現(xiàn)頁面跳轉(zhuǎn)

2009-07-07 18:20:54

JSP頁面顯示亂碼

2009-03-23 09:01:00

圖片存儲(chǔ)數(shù)據(jù)庫JSP
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)