图片验证码

    xiaoxiao2021-12-14  18

    package com.test.yzm; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.PrintWriter; import java.util.Random; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class yzm extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //指定图片的大小 int width = 120; int height = 30; //创建一个图片 BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); //拿到图片的画笔 Graphics g = image.getGraphics(); //指定边框的颜色 g.setColor(Color.BLACK); //先画出图片的边框 g.drawRect(0, 0, width, height); //填充颜色 g.setColor(Color.WHITE); g.fillRect(1, 1, width-2, height-2); //画出30条干扰线 g.setColor(Color.GRAY); Random random = new Random(); for (int i = 0; i < 50; i++) { g.drawLine(random.nextInt(width), random.nextInt(height), random.nextInt(width), random.nextInt(height)); } //填充内容 g.setColor(Color.BLUE); g.setFont(new Font("幼圆", Font.BOLD+Font.ITALIC, 15)); //填充数字 for (int i = 0; i < 6; i++) { g.drawString(random.nextInt(10)+"", 15+15*i+random.nextInt(5), 18+random.nextInt(5)); } //通知浏览器不要缓存 response.setHeader("Expires", -1+""); response.setHeader("Cache-Control", "no-Cache"); response.setHeader("Pragam", "no-Cache"); //将图片输送到页面上 ImageIO.write(image, "jpg", response.getOutputStream()); } }
    转载请注明原文地址: https://ju.6miu.com/read-965351.html

    最新回复(0)