import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.util.Random;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
/**
* 产生四们随机数字的验证图片
* @author yidatuosi
*
*/
public class ImageTool
{
public String sRand = "";
public 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);
}
public BufferedImage creatImage()
{//在内存中创建图像
int width = 60;
int height = 20;
BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
//获取图形上下文
Graphics g = image.getGraphics();
//生成随机类
Random random = new Random();
//设定背景色
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);
//设定字体
g.setFont(new Font("Times New Roman",Font.PLAIN,18));
//画边框
// g.setColor(new Color());
// g.drawRect(0, 0, width-1, height-1);
//随机产生155条干扰经,使图像中的认证码不易被其他程序探测到
for(int i=0; i<155; i++)
{
g.setColor(getRandColor(160,200));
int x = random.nextInt(width);
int y = random.nextInt(height);
int x1 = random.nextInt(12);
int y1 = random.nextInt(12);
g.drawLine(x, y, x+x1, y+y1);
}
//取随机产生 的认证码(4位数字)
sRand = "";
for(int i=0; i<4; i++)
{
String rand = String .valueOf(random.nextInt(10));
sRand+=rand;
//将认证码显示到图像中
g.setColor(new Color(20+random.nextInt(110), 20 + random.nextInt(110), 20+random.nextInt(110)));
//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
g.drawString(rand, 13*i+6, 16);
}
//图像生效
g.dispose();
return image;
}
public String getRand()
{
return sRand;
}
public static void main(String[] args)
{
ImageTool it = new ImageTool();
JFrame jf = new JFrame();
jf.setSize(200,300);
jf.setTitle("产生验证码");
Container ct = jf.getContentPane();
ImageIcon ii = new ImageIcon(it.creatImage());
JLabel jl = new JLabel(ii);
ct.add(jl);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
System.out.println(it.getRand());
}
}
分享到:
相关推荐
Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...
Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...
Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...
Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...
Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...
Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...
产生自己的控件 Java控件的相互控制与消息传递 Java圆形的按钮制作 密码验证框 视频播放程序 定时器的使用 Java建立Http连接 用RMS记录个人信息 Java建立与断开数据库的连接 Java创建和...
java登入界面随机验证码产生的代码,让你自己来展示验证码,让你懂得java的博大精深
Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰效果 Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、...
6.3 实例——利用JSP制作图片缩略图 87 6.4 小结 90 第7章 JSTL——JSP标准标签库 91 7.1 JSTL基础 91 7.1.1 JSTL的核心标签库 92 7.1.2 JSTL中使用表达式语言 93 7.2 实例——利用JSTL标签生成数字序列...
摘要:Java源码,书籍源码,Java源代码 Java实用程序设计100例源代码,这些实例主要有: 产生自己的控件 Java控件的相互控制与消息传递 Java圆形的按钮制作 密码验证框 视频播放程序 定时器的使用 Java...
Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰效果 Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、...
java编程100实例,适合初学java的朋友学习,含有源代码,省去了码代码的时间,可以直接导入,运行。建议实用eclipse,内容如下: 实例1 产生自己的控件 实例2 控件的排布示例 实例3 控件的相互控制与消息传递 实例4 ...
1.Web安全性的考虑(表单验证、浏览器Basic方式的验证,应用程序的安全性,SSL,代码考虑) 2.简单介绍您所了解的MVC。 3.简单介绍所了解的XML。 4.文档和编码规范 5.Java中的分页、效率考虑。 6.简单介绍您所...
发帖者可以进行该帖更新,但是每次更新都会产生编辑历史,浏览者可以看到并对比其内容变更。目前还不支持回帖更新,后续会加入,敬请期待。 帖子和回帖都可以使用匿名身份进行发布,你懂的。 对搜索引擎友好 ...
此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...
此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...
此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...
第2章(\代码\第02章) • sample01.htm 将JavaScript代码插入在标签与标签之间 • sample02.htm 将JavaScript代码放在了标签与标签之间 • sample03.htm JavaScript与HTML混合执行 • ...