zoukankan      html  css  js  c++  java
  • 生成随机验证码图片

    package com.gnnuit.response;
    
    import java.awt.Color;
    import java.awt.Font;
    import java.awt.Graphics;
    import java.awt.image.BufferedImage;
    import java.io.IOException;
    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 ServletResponseDemo3 extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    	private static int WIDTH = 120;
    	private static int HEIGHT = 25;
    
    	protected void doGet(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		//设置客户端不要缓存
    		response.setHeader("Expires", "-1");
    		response.setHeader("Pragma", "no-cache");
    		response.setHeader("Cache-Control", "no-cache");
    		// 1、创建内存图片,BufferedImage
    		BufferedImage image = new BufferedImage(WIDTH, HEIGHT,
    				BufferedImage.TYPE_INT_RGB);
    		// 2、通过图片获得画笔Graphics
    		Graphics g = image.getGraphics();
    		// 2.1画边框
    		g.setColor(Color.BLUE);
    		g.drawRect(0, 0, WIDTH, HEIGHT);
    		// 2.2画背景颜色
    		g.setColor(Color.GRAY);
    		g.fillRect(1, 1, WIDTH - 2, HEIGHT - 2);
    		// 2.3画干扰线9条
    		g.setColor(Color.YELLOW);
    		Random r = new Random();
    		for (int i = 0; i < 9; i++) {
    			g.drawLine(r.nextInt(WIDTH), r.nextInt(HEIGHT), r.nextInt(WIDTH),
    					r.nextInt(HEIGHT));
    		}
    		// 2.4画验证码数字4个
    		g.setColor(Color.RED);
    		g.setFont(new Font("宋体", Font.BOLD, 20));
    		int x = 7;
    		for (int i = 0; i < 4; i++) {
    			g.drawString(r.nextInt(9) + "", x, 20);
    			x = x + 30;
    		}
    		// 3、输出内存图像到客户端ImageIO
    		ImageIO.write(image, "jpeg", response.getOutputStream());
    	}
    
    	protected void doPost(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    
    	}
    }
    

      

  • 相关阅读:
    jquery同步请求
    js换空格为别的元素
    获取页面的checkbox,并给参数赋值
    jQuery判断checkbox是否选中的3种方法
    opencv基础知识------IplImage, CvMat, Mat 的关系和相互转换
    Opencv基础知识-----视频的读取和操作
    OpenCV 基础知识------图像创建、访问、转换
    windows消息钩子注册底层机制浅析
    Windows内核遍历驱动模块源码分析
    VC 快速创建多层文件夹
  • 原文地址:https://www.cnblogs.com/FlySheep/p/3405271.html
Copyright © 2011-2022 走看看