1. ホーム
  2. Web プログラミング
  3. JSP プログラミング

JSPページ内で画像キャプチャを動的に生成するメソッドの例

2022-01-16 12:35:07

JSPページで画像キャプチャを動的に生成する

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page 
import="java.awt.*,java.awt.image.*,com.sun.image.codec.jpeg.*,java.util.*" %>
<%@ taglib http://struts.apache.org/tags-bean">http://struts.apache.org/tags-bean" 
prefix="bean" %>
<%@ taglib http://struts.apache.org/tags-html">http://struts.apache.org/tags-html" 
prefix="html" %>
<%@ taglib http://struts.apache.org/tags-logic">http://struts.apache.org/tags-logic" 
prefix="logic" %>
<%@ taglib http://struts.apache.org/tags-tiles">http://struts.apache.org/tags-tiles" 
prefix="tiles" %>
<!DOCTYPE HTML PUBLIC "-/W3C//DTD HTML 4.01 Transitional//EN">
<html:html lang="true">
 <head>
  <html:base />
  <title>MyJsp.jsp</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">  
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<! --
<link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" >
-->
 </head>
 <body>
<h3> Generate captcha in jsp page</h3>
<hr/>
<%
 //out.clear();
 //response.setContentType("image/jpeg");//set response type
 //response.addHeader("pragma","NO-cache");
 //response.addHeader("Cache-Control","no-cache");
 //response.addDateHeader("Expries",0);
 int width=400, height=30;//the size of the image (width and height)
 //frame canvas, the first parameter indicates the width of the canvas, the second parameter indicates the height of the canvas, the meaning of the third parameter to be determined
 BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
 Graphics g = image.getGraphics();// instantiate the drawing object
 // set the background color as follows
 g.setColor(Color.yellow); 
 Font DeFont=new Font("宋体", Font.ITALIC, 20);
 g.setFont(DeFont);
 //fill the specified canvas area with the background color already set
 g.fillRect(0,0, width, height);
 //set the font color
 g.setColor(Color.blue);
 int x=10,y=10,xl=550,yl=15;
 g.drawLine(x,y,x+xl,y+yl); 
 //draw the ellipse in the canvas, the parameter is the coordinates of the ellipse, used to determine the size of the ellipse
 g.drawOval(0,10,200,10);
 // output text information on the canvas, the first parameter indicates the text to be displayed, the second and third parameters indicate the X and Y coordinates of the starting point
 g.drawString("The text you want to output - I am Chen Suan",70,20);
 g.dispose();
 ServletOutputStream outStream = response.getOutputStream();
 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(outStream);
 encoder.encode(image);
 outStream.close();
%>
 </body>
</html:html>

-- このファイルを pic.jsp という名前で保存してください。もし、他のページにも画像を表示させたい場合は、次のように記述するだけです。

<img src="pic.jsp"/>

この1行だけで、あらゆる種類のキャプチャーを生成することができるのでOK!

概要

以上が本記事の内容の全てです、皆様の勉強やお仕事に本記事の内容が一定の参考学習価値を持つことを願っています、BinaryDevelopをよろしくお願いします。もっと詳しく知りたい方は、以下のリンク先をご確認ください。