package com.ah.testjava.validatecode;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.util.Random; import javax.swing.JFrame;
import javax.swing.JPanel; public class 验证码 extends JFrame { public 验证码() {
setVisible(true);
setSize(800, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE); MyJp jp = new MyJp();
this.add(jp);
} public static void main(String[] args) {
new 验证码();
}
}
package com.ah.testjava.validatecode;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.util.Random; import javax.swing.JPanel; public class MyJp extends JPanel {
public MyJp(){ } @Override
public void paintComponent(Graphics g) {
BufferedImage vc = createVCode();
g.drawImage(vc,0,0,100,30,null);
} public BufferedImage createVCode() {
int nStrfontSize=30;
int nStrY=30;
int width = 100;
int height = 30;
// 创建一个画布
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
// 创建画笔
Graphics g = image.getGraphics();
// 设置画笔颜色
g.setColor(Color.white);
// 填充背景颜色
g.fillRect(0, 0, width, height);
// 创建将要输出的内容
char[] words = "01234567890abcdefghijklmn马蓉王宝强赵薇宋哲".toCharArray();
// 创建随机对象(用于随机选择要生成的验证码和颜色)
Random rnd = new Random(); // 画圆点
for (int i = 0; i < 200; i++) {
// 设置画笔颜色
g.setColor(new Color(rnd.nextInt(255), rnd.nextInt(255), rnd
.nextInt(255)));
// 画椭圆
g.drawOval(rnd.nextInt(width), rnd.nextInt(height), 1, 1);
} // 创建一个临时变量用于拼接生成的验证码
String sessionCode = ""; // 生成4位验证码
for (int i = 0; i < 4; i++) {
// 使用画笔,在画布上写字
g.setColor(new Color(rnd.nextInt(255), rnd.nextInt(255), rnd
.nextInt(255)));
// 设置字体相关
g.setFont(new Font("微软雅黑", Font.BOLD, nStrfontSize));
// 获取当前产生的验证码(单个)
String currentCode = words[rnd.nextInt(words.length)] + "";
// 每次将生成的结果拼接起来
sessionCode += currentCode;
// 在画布上写文字,并且设置文字的 横坐标和纵坐标
g.drawString(currentCode, i * 20 + 10, nStrY); }
return image; }
}

验证码I的更多相关文章

  1. .net点选验证码实现思路分享

    哈哈好久没冒泡了,最进看见点选验证码有点意思,所以想自己写一个. 先上效果图 如果你被这个效果吸引了就请继续看下去. 贴代码前先说点思路: 1.要有一个汉字库,并按字形分类.(我在数据库里是安部首分类 ...

  2. 【探索】无形验证码 —— PoW 算力验证

    先来思考一个问题:如何写一个能消耗对方时间的程序? 消耗时间还不简单,休眠一下就可以了: Sleep(1000) 这确实消耗了时间,但并没有消耗 CPU.如果对方开了变速齿轮,这瞬间就能完成. 不过要 ...

  3. TODO:Laravel增加验证码

    TODO:Laravel增加验证码1. 先聊聊验证码是什么,有什么作用?验证码(CAPTCHA)是"Completely Automated Public Turing test to te ...

  4. PHP-解析验证码类--学习笔记

    1.开始 在 网上看到使用PHP写的ValidateCode生成验证码码类,感觉不错,特拿来分析学习一下. 2.类图 3.验证码类部分代码 3.1  定义变量 //随机因子 private $char ...

  5. 随手记_C#验证码

    前言 最近在网上偶然看见一个验证码,觉得很有意思,于是搜了下,是使用第三方实现的,先看效果: 总体来说效果还是可以的,官方提供的SDK也比较详细,可配置性很高.在这里在简单啰嗦几句使用方式: 使用步骤 ...

  6. WPF做12306验证码点击效果

    一.效果 和12306是一样的,运行一张图上点击多个位置,横线以上和左边框还有有边框位置不允许点击,点击按钮输出坐标集合,也就是12306登陆的时候,需要向后台传递的参数. 二.实现思路 1.获取验证 ...

  7. 零OCR基础6行代码实现C#验证码识别

    这两天因为工作需要,要到某个网站采集信息,一是要模拟登陆,二是要破解验证码,本想用第三方付费打码,但是想想网上免费的代码也挺多的,于是乎准备从网上撸点代码下来,谁知道,撸了好多个都不行,本人以前也没接 ...

  8. ASP.NET中画图形验证码

    context.Response.ContentType = "image/jpeg"; //生成随机的中文验证码 string yzm = "人口手大小多少上中下男女天 ...

  9. asp.net mvc 验证码

    效果图 验证码类 namespace QJW.VerifyCode { //用法: //public FileContentResult CreateValidate() //{ // Validat ...

  10. ecshop验证码

    <?php //仿制ecshop验证码(四位大写字母和数字.背景) //处理码值(四位大写字母和数字组成) //所有的可能的字符集合 $chars = 'ABCDEFGHIJKLMNOPQRST ...

随机推荐

  1. 快速分析apk工具aapt的使用

    前面walfred已经介绍了使用apktool对apk进行逆向编译,通过apktool我们的确可以反编译已经序列化后的AndroidManifest.xml和资源文件等等,但是有没有一种快速有效的工具 ...

  2. 网站优化之Asp.Net篇<一>

    一>禁用viewstate. 二>禁用动态编译.访问一个Aspx文件时 会编译为一个新的类放在C盘Asp.net临时文件夹下.下次请求不会再编译,会把先前的编译结果返回. 任何对Asp.n ...

  3. 例子:Background Agent Sample

    通过本例程学习: 后台代理Agent的使用方法 定期代理(PeriodicTask)来说,限制了: 有一些API不能使用,并不是说你不调用就可以了,只要你在同一个程序集里使用了这些API,就不会通过验 ...

  4. .net 获取AppDomain创建了多少

    partial class HttpBrowser { public static string IsolateCall(PageContentHandler pHandler) { Contract ...

  5. 3、通过挂在系统光盘搭建本地yum仓库的方法

    1. mkdir xxx #新建文件夹 (新建一个挂载需要的文件夹) .配置本地yum源(挂载光盘) .进入 yum.repos.d .ls (查看当前文件夹全部的文件) 并 mv 修改   除Med ...

  6. Python学习路程day9

    本节内容 Gevent协程 Select\Poll\Epoll异步IO与事件驱动 Python连接Mysql数据库操作 RabbitMQ队列 Redis\Memcached缓存 Paramiko SS ...

  7. cassandra CQL 常用操作

    1. CQL客户端链接 bin/cqlsh ip username password 2. (1)建立keyspace语句,keyspace类似于 mysql 中的数据库,一个数据库中可以有很多表: ...

  8. php大力力 [039节] 修改一下后台项目,同时启用印象笔记,要做的事情todo列表,记录在印象笔记,速度快一些

    php大力力 [039节]  修改一下后台项目,同时启用印象笔记,要做的事情todo列表,记录在印象笔记,速度快一些

  9. Qt开发环境中使用报表控件FastReport遇到的一些问题(二)

    上一节中谈到的那个问题:传递的变量内容如果是纯英文,报表报错.经笔者反复测试,找到了解决办法:代码中第5行替换为以下 params<<"my_var"<<& ...

  10. Linux平台屏幕录像工具RecordMyDesktop

    如果你把Linux桌面效果自定义得很漂亮,是不是很想录下来和其他人一起分享呢?RecordMyDesktop完全满足需要,我期待这么一个软件很久了,以前也一直没有找到合适的. 以后每次发Ubuntu的 ...