package cn.gov.csrc.servlet; 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.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; public class CodeServlet extends HttpServlet { /** * 产生验证码图片 */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("image/jpeg"); response.setHeader("Cache-Control", "no-cache"); response.setHeader("Pragma", "No-cache"); response.setDateHeader("Expires", 0L); int width = 80; int height = 30; BufferedImage image = new BufferedImage(width, height, 1); Graphics g = image.getGraphics(); Random random = new Random(); g.setColor(getRandColor(200, 250)); g.fillRect(0, 0, width, height); g.setFont(new Font("Arial", 0, 25)); g.setColor(getRandColor(160, 200)); for (int i = 0; i < 155; i++) { int x = random.nextInt(width + 100); int y = random.nextInt(height + 100); int xl = random.nextInt(10); int yl = random.nextInt(12); g.drawOval(x, y, x + xl, y + yl); } String code = request.getParameter("code"); String sRand = code; for (int i = 0; i < sRand.length(); i++) { String rand = sRand.substring(i, i + 1); g.setColor(new Color(20 + random.nextInt(110), 20 + random .nextInt(110), 20 + random.nextInt(110))); g.drawString(rand, 14 * i + 5, 25); } g.dispose(); javax.servlet.ServletOutputStream imageOut = response.getOutputStream(); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(imageOut); encoder.encode(image); } private Color getRandColor(int fc, int bc) { Random random = new Random(); if (fc > 255) fc = 255; if (bc > 255) bc = 255; int r = fc + random.nextInt(bc - fc); int g = fc + random.nextInt(bc - fc); int b = fc + random.nextInt(bc - fc); return new Color(r, g, b); } }
最近下载更多
阿三在中国 LV7
2019年8月13日
dsddfafsdfasdfs LV1
2018年12月25日
yuanduo LV1
2018年9月9日
唐唐丶 LV34
2018年8月11日
taoyi123 LV17
2017年8月4日
感动常在 LV12
2017年7月8日
lalalaslun LV1
2017年3月5日
否极泰来 LV6
2016年12月1日
好我累个去哦 LV15
2016年11月4日
wneely LV1
2016年7月29日
最近浏览更多
sdfgsdfg LV2
2023年10月23日
kanro11
2023年5月10日
暂无贡献等级
yjdang LV3
2023年3月27日
taoshen95 LV15
2022年12月2日
double_AI LV1
2022年11月20日
2998919365 LV5
2022年5月23日
nbzhou2013 LV14
2022年4月10日
JohnAlex LV9
2022年2月22日
welcome丶 LV8
2021年12月30日
kangka1ang
2021年12月20日
暂无贡献等级