Java生成登录注册验证码+添加干扰选项,文章中含有源码

简介: Java生成登录注册验证码+添加干扰选项,文章中含有源码
package cn.demo1;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Random;
//
public class ImageCode {
    //数组
    static String[] strings = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "m", "n",
            "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "2", "3", "4", "5",
            "6", "7", "8", "9"};
    public static void main(String[] args) throws IOException {
        //大的代码,通过Java生成一个图片(**图片上含有数字或者字母或者干扰线**)
        //??  1->5->
        //和自己画画一样的
        /**
         *     1、准备画板
         *     2、准备笔
         *     3、准备一些数据,随机在数组中取出四个数据(for循环)
         *     4、将去除的数据画到画板上去
         *     5、生成一个真正的是图片
         */
        //定义一个图片的宽度
        int w=210;
        //定义高度
        int h=170;
        //图片的类型
        int imageType=BufferedImage.TYPE_INT_RGB;
        //   1、JDK中提供画板类
        BufferedImage image=new BufferedImage(w,h,imageType);
        //修改图片颜色   idea     图片默认黑色
        //先获取画笔对象
        Graphics g= image.getGraphics();
        //设置画笔颜色
        g.setColor(Color.pink);
        //画一个填充矩形
        g.fillRect(0,0,210,170);
        //设置画笔颜色,不然和填充举证颜色一样,看不出来
        g.setColor(Color.gray);
        //设置字体
        g.setFont(new Font("楷体",Font.TYPE1_FONT,45));
        //使用Random随机产生一个数字
        Random random=new Random();
        int x=25,y=25;
        //3、准备一些数据,随机在数组中取出四个数据(for循环)
        for (int i = 0; i < 4; i++) {
            //num 值是随机生成的
            int num= random.nextInt(strings.length);
            //每次循环取一个
            String str= strings[num];
            //每次获取一个数字画到图片上去
            g.drawString(str,x,y);
            x+= random.nextInt(65);
            y+=random.nextInt(55);
        }
        g.setColor(Color.red);
        for (int j = 0; j < 60; j++) {
            //画干扰线
            g.drawLine(random.nextInt(150)-100,random.nextInt(150)-70,
                    random.nextInt(150)+120, random.nextInt(150)+140);
        }
        //5.把image生成到本地的磁盘上
        ImageIO.write(image,"jpg",new File("../aaa.jpg"));
    }
}

image.pngimage.png

目录
相关文章
|
6天前
|
运维 Java
Java版HIS系统 云HIS系统 云HIS源码 结构简洁、代码规范易阅读
云HIS系统分为两个大的系统,一个是基层卫生健康云综合管理系统,另一个是基层卫生健康云业务系统。基层卫生健康云综合管理系统由运营商、开发商和监管机构使用,用来进行运营管理、运维管理和综合监管。基层卫生健康云业务系统由基层医院使用,用来支撑医院各类业务运转。
30 5
|
1天前
|
搜索推荐 前端开发 Java
java医院绩效考核管理系统项目源码
系统需要和his系统进行对接,按照设定周期,从his系统获取医院科室和医生、护士、其他人员工作量,对没有录入信息化系统的工作量,绩效考核系统设有手工录入功能(可以批量导入),对获取的数据系统按照设定的公式进行汇算,且设置审核机制,可以退回修正,系统功能强大,完全模拟医院实际绩效核算过程,且每步核算都可以进行调整和参数设置,能适应医院多种绩效核算方式。
3 0
|
2天前
|
设计模式 算法 Java
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
[设计模式Java实现附plantuml源码~行为型]定义算法的框架——模板方法模式
|
2天前
|
设计模式 JavaScript Java
[设计模式Java实现附plantuml源码~行为型] 对象状态及其转换——状态模式
[设计模式Java实现附plantuml源码~行为型] 对象状态及其转换——状态模式
|
2天前
|
设计模式 存储 JavaScript
[设计模式Java实现附plantuml源码~创建型] 多态工厂的实现——工厂方法模式
[设计模式Java实现附plantuml源码~创建型] 多态工厂的实现——工厂方法模式
|
2天前
|
设计模式 Java Go
[设计模式Java实现附plantuml源码~创建型] 集中式工厂的实现~简单工厂模式
[设计模式Java实现附plantuml源码~创建型] 集中式工厂的实现~简单工厂模式
|
2天前
|
Java 调度
Java面试必考题之线程的生命周期,结合源码,透彻讲解!
Java面试必考题之线程的生命周期,结合源码,透彻讲解!
28 1
|
7天前
|
JavaScript Java 测试技术
基于Java的电影评论系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的电影评论系统的设计与实现(源码+lw+部署文档+讲解等)
23 0
|
7天前
|
JavaScript Java 测试技术
基于Java的在线日语培训平台的设计与实现(源码+lw+部署文档+讲解等)
基于Java的在线日语培训平台的设计与实现(源码+lw+部署文档+讲解等)
23 0
|
7天前
|
JavaScript Java 测试技术
基于Java的同城蔬菜配送管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的同城蔬菜配送管理系统的设计与实现(源码+lw+部署文档+讲解等)
11 0