- ·上一篇文章:使用session对象储存数据
- ·下一篇文章:jsp日历实现
jsp旋转的椭圆
-->
此为jsp response对象中conttentType属性的小实验。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | <%@page import="com.sun.image.codec.jpeg.JPEGCodec"%> <%@page import="com.sun.image.codec.jpeg.JPEGImageEncoder"%> <%@page import="java.io.OutputStream"%> <%@page import="java.awt.geom.AffineTransform"%> <%@page import="java.awt.geom.Ellipse2D"%> <%@page import="java.awt.Graphics2D"%> <%@page import="java.awt.Color"%> <%@page import="java.awt.Graphics"%> <%@page import="java.awt.image.BufferedImage"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <title>Insert title here</title> </head> <body> <br>观看旋转的椭圆 <form action="" method="post" name=form> <input type="submit" name="submit" value="观看"> </form> <% String str=request.getParameter("submit"); if(str !=null){ response.setContentType("image/jpeg"); int width=260,height=260; // 创建一个不带透明色的BufferedImage对象 BufferedImage image=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); //Graphics类提供基本绘图方法 Graphics g=image.getGraphics(); g.setColor(Color.white); //填充指定的矩形 g.fillRect(0,0,width,height); Graphics2D g_2d=(Graphics2D)g; //构造一个新 Ellipse2D,并将其初始化为:位置 (0, 0)、大小 (0, 0)。 Ellipse2D ellipse =new Ellipse2D.Double(20,50,120,50); g_2d.setColor(Color.blue); //AffineTransform 类表示 2D 仿射变换,它执行从 2D 坐标到其他 2D 坐标的线性映射. AffineTransform trans=new AffineTransform(); for(int i=1;i<=24;i++){ trans.rotate(15.0*Math.PI/180,75,75); g_2d.setTransform(trans); // 重写 Graphics2D 上下文中的 Transform。 g_2d.draw(ellipse); //使用当前 Graphics2D 上下文的设置勾画 Shape 的轮廓。 } g.dispose(); //释放此图形的上下文以及它使用的所有系统资源。 OutputStream outClient =response.getOutputStream(); //获取指向用户端的输出流 JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(outClient); encoder.encode(image); } %> </body> </html> |
jsp旋转的椭圆