创图片对象
- new BufferedImage(宽,高,类型)
美化图片
-
填充背景色
Graphics g = image.getFraphics()//画笔对象
g.setcolor(Color.颜色)//设置颜色
g.fillRect(起点坐标,终点坐标)//填充 -
画边框
g.setcolor//颜色
g.drawRect(起点坐标,终点坐标-1) -
写验证码
str = “abcd············”
生成随机角标
new Random()
ran.nextInt(str.length)
获取字符
ch=str.charAt(角标)
g.drawString(“随机码”,x,y) -
画干扰线
生成随机坐标
int x = ran.nextInt(width)~~~~~
g.setcolor(颜色)
g.drawLine(x,y,x,y)
将图片输出
- ImageIo.write(对象,后缀名,流对象)
package cn.com.respond;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
@WebServlet("/servletImg")
public class sevletImg extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//创建图片对象
int width = 100;
int height = 50;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
//美化图片
Graphics g = image.getGraphics();//画笔对象
g.setColor(Color.pink);
g.fillRect(0,0,width,height);
//画边框
g.setColor(Color.black);
g.drawRect(0,0,width-1,height-1);
//写验证码
String str = "ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz1234567890";
Random ran = new Random();
for (int i = 1; i < 5; i++) {
int index = ran.nextInt(str.length());
char c = str.charAt(index);
g.drawString(c+"",(width/5)*i,height/2);
}
//画干扰线
for (int i = 0; i < 10; i++) {
int x1 = ran.nextInt(width);
int x2 = ran.nextInt(width);
int y1 = ran.nextInt(height);
int y2 = ran.nextInt(height);
g.setColor(Color.green);
g.drawLine(x1,y1,x2,y2);
}
//将图片输出
ImageIO.write(image,"jpg",resp.getOutputStream());
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req,resp);
}
}
html页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<script>
window.onload = function () {
//页面加载完成后
//获取class
var img = document.getElementsByClassName("onclick");
//绑定单击事件
img.onclick = function () {
//获取时间戳
var t = new Date().getTime();
img.src = "/day/servletImg?"+t;
}
}
</script>
<body>
<a class = "onclick" href=""><img src="/day13/servletImg">看不清换一张?</a>
</body>
</html>
最终页面