使用Servlet繪制動態的數字圖片
以下是web.xml的配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns=" xmlns:xsi=" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
;
<servlet>
<servlet-name>GenerateImageServlet</servlet-name>
<servlet-class>com.jadyer.servlet.GenerateImageServlet</servlet-class>
</servlet><servlet-mapping> <servlet-name>GenerateImageServlet</servlet-name> <url-pattern>/servlet/image</url-pattern> </servlet-mapping> </web-app> </pre></span></strong></span>以下是index.jsp的內容<pre class="brush:java; toolbar: true; auto-links: false;"> <%@ page language="java" pageEncoding="UTF-8"%> <%response.sendRedirect(request.getContextPath()+"/servlet/image");%> </pre></span></strong></span>以下核心GenerateImageServlet.java的代碼<pre class="brush:java; toolbar: true; auto-links: false;"> package com.jadyer.servlet; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; import java.util.Random; import javax.imageio.ImageIO; import javax.imageio.stream.ImageOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 繪制隨機數字圖片的Servlet */ public class GenerateImageServlet extends HttpServlet { private static final long serialVersionUID = 760480418450678827L; // 產生的圖像的寬度,單位為像素 private final static int WIDTH = 260; // 產生的圖像的高度,單位為像素 private final static int HEIGHT = 60; public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { // 設置輸出的內容的類型為JPEG圖像 response.setContentType("image/jpeg"); OutputStream os = response.getOutputStream(); createImage(os); os.close(); } /** * 繪制輸出整個圖形 */ public void createImage(OutputStream os) throws IOException { // 創建一個BufferedIamge對象 BufferedImage image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB); // 獲取的Graphics2D對象,通過這個對象完成繪圖 Graphics2D g = image.createGraphics(); // 繪制背景圖 g.setColor(Color.white); g.fillRect(0, 0, WIDTH, HEIGHT); // 畫邊框 g.setColor(Color.black); g.drawRect(0, 0, WIDTH - 1, HEIGHT - 1); // 設定字體 g.setFont(new Font("Times New Roman", Font.PLAIN, 60)); // 生成隨機類 Random random = new Random(); // 取隨機產生的6位數字 for (int i = 0; i < 6; i++) { String rand = String.valueOf(random.nextInt(10)); // 將隨機產生的數字顯示到圖象中 g.drawString(rand, 40 * i + 20, 50); } // 生成圖像的輸出流 ImageOutputStream ios = ImageIO.createImageOutputStream(os); ImageIO.write(image, "jpeg", ios); ios.close(); } } </pre></span></strong></span>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!