一对一聊天源码,验证码选择输入字母验证

一对一聊天源码,验证码选择输入字母验证实现的相关代码

1
package responseproject;<br> <br>import java.io.IOException;<br>import java.util.Random;<br>import java.awt.Color;<br>import java.awt.Font;<br>import java.awt.Graphics;<br>import java.awt.image.BufferedImage;<br> <br>import javax.imageio.ImageIO;<br>import javax.servlet.ServletException;<br>import javax.servlet.annotation.WebServlet;<br>import javax.servlet.http.HttpServlet;<br>import javax.servlet.http.HttpServletRequest;<br>import javax.servlet.http.HttpServletResponse;<br> <br>@WebServlet("/checkcode")<br>public class CheckCode extends HttpServlet{<br> <br>/**<br> * <br> */<br>private static final long serialVersionUID = 1L;<br> <br>@Override<br>protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {<br>// TODO Auto-generated method stub<br>this.doPost(req, resp);<br>}<br> <br>@Override<br>protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {<br>int imgwidth=100;<br>int imgheight=50;<br>//1.创建图片对象,在内存中图片(验证码图片对象)<br>BufferedImage image=new BufferedImage(imgwidth,imgheight,BufferedImage.TYPE_INT_RGB);  //也可以指定读取image=imageIO.read(new file())<br>//2.美化图片<br>Graphics g=image.getGraphics(); //获得画笔对象<br>//设置画笔颜色<br>g.setColor(Color.pink);<br>//在创建的图片对象大小中填充矩形,颜色为上面设置的颜色,第一,二个参数是起始点的x,y,第三,四个参数是有多宽,有多高<br>g.fillRect(0, 0, imgwidth, imgheight);<br>//重新设置画笔颜色<br>g.setColor(Color.blue);<br>//在image上画边框,第一,二个参数是起始点的x,y,第三,四个参数是有多宽,有多高,注意:边框占一个像素,所以需要宽和高-1才能覆盖全部<br>g.drawRect(0, 0, imgwidth-1, imgheight-1);<br>//随机设置验证码的值<br>String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";<br>Random random=new Random();<br>//随机在image中写字符串,第三,四个参数是画的位置<br>for(int i=1;i<5;i++) {<br>int index=random.nextInt(str.length());  //随机选取字母字符<br>g.setFont(new Font("宋体", Font.PLAIN, 20));  //设置画笔大小<br>    g.drawString(str.charAt(index)+"",imgwidth/5*i ,25);    <br>}<br>//随机画干扰线,第一,二个参数是起始点的x,y,第三,四个参数是最后一个点的x,y<br>int x1=0,y1=0,x2=0,y2=0;<br>for(int i=0;i<=8;i++) {  //画8次线条<br>x1=random.nextInt(imgwidth);<br>y1=random.nextInt(imgheight);<br>x2=random.nextInt(imgwidth);<br>    y2=random.nextInt(imgheight);<br>    g.setColor(Color.gray);<br>    g.drawLine(x1, y1, x2, y2);<br>}<br>//3.图片显示在页面上<br>ImageIO.write(image, "jpg", resp.getOutputStream());  //将图片写入指定文件(第三个参数是指定的位置Fileoutpotstream(new File(""))<br>}<br> <br>}

​以上就是 一对一聊天源码,验证码选择输入字母验证实现的相关代码,更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(184)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示