`
datuo
  • 浏览: 82287 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

产生验证图片JAVA代码

阅读更多

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后端产生验证码后台验证功能的实现代码

    Java后端产生验证码后台验证功能的实现代码 Java后端产生验证码后台验证功能的实现代码是指在Java后台生成验证码,并对其进行后台验证的功能。本文主要介绍了Java后台产生验证码后台验证功能的实现代码,结合实例...

    java源码包---java 源码 大量 实例

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    java生成模糊图片

    6. **项目结构**: 文件列表中包含的`test.java`可能是测试类,用于验证`BoxBlurFilter`的功能。`Manifest`文件是Java应用的标准清单文件,记录了应用的元数据。`build.xml`可能是Ant构建脚本,用于自动化编译和打包...

    java源码包3

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    java源码包2

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    Java实用程序设计100例(源代码)

    产生自己的控件  Java控件的相互控制与消息传递  Java圆形的按钮制作  密码验证框  视频播放程序  定时器的使用  Java建立Http连接  用RMS记录个人信息  Java建立与断开数据库的连接  Java创建和...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰效果 Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、...

    java源码包4

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    java调用 人脸识别接口demo

    描述中提到的"java调用",意味着我们要在Java代码中创建HTTP请求,将图像数据发送到提供人脸识别服务的服务器。这通常涉及到网络编程和JSON序列化/反序列化。你可以使用诸如Apache HttpClient或OkHttp这样的库来发送...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰效果 Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、...

    java版仿2048代码

    可以编写单元测试,针对每一种可能的滑动操作和游戏状态进行验证。 总的来说,Java版的2048游戏开发涵盖了面向对象设计、数据结构、算法和用户交互等多个方面,是学习和实践Java编程的一个好项目。通过这个项目,...

    从Java走向Java+EE+.rar

    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实用程序设计100例源代码

    摘要:Java源码,书籍源码,Java源代码 Java实用程序设计100例源代码,这些实例主要有:  产生自己的控件  Java控件的相互控制与消息传递  Java圆形的按钮制作  密码验证框  视频播放程序  定时器的使用  Java...

    smartupload java 代码

    在Java开发中,文件上传是一个常见的功能,尤其在Web应用程序中,用户可能需要上传图片、文档等各类文件。SmartUpload是一款强大的Java文件上传组件,它简化了文件上传的处理过程,使得开发者能够更高效地实现这一...

    java聊天室

    这可能涉及解析表情代码,加载对应的图片资源,并在聊天窗口中正确地显示出来。 9. **安全性考虑**:为了保护用户信息的安全,聊天室可能需要对用户的密码进行加密存储,防止被非法获取。此外,对于网络通信的数据...

    团购项目完整代码

    【团购项目完整代码】是一个基于Java技术实现的某客网团购项目的源代码集合。这个项目旨在展示一个完整的团购系统的开发过程,涵盖了从用户界面到后台服务的各个环节,为学习者提供了一个实际操作的平台,加深对Java...

    Java24点游戏逼真图形版代码.7z

    10. **测试与调试**:开发者可能使用JUnit等单元测试框架来验证代码功能的正确性,并通过IDE的调试工具进行问题定位。 综上所述,这个Java24点游戏项目涵盖了丰富的编程概念和技术,包括GUI设计、事件处理、图像...

    java类似书本翻页效果

    1. **源代码**:Java类文件,实现了翻页效果的核心逻辑,包括翻页动画的控制、图片加载和处理、参数设置等功能。 2. **资源文件**:可能包含用于示例的背景图片或其他素材,供开发者参考和替换。 3. **配置文件**:...

    连连看源代码

    源代码中会有单元测试和集成测试来验证游戏逻辑的正确性,Xcode自带的测试工具可以帮助开发者编写和运行这些测试。同时,调试器如LLDB和断点设置是排查问题的重要手段。 10. 发布与更新: 完成开发后,需要打包成...

    java编程100例

    java编程100实例,适合初学java的朋友学习,含有源代码,省去了码代码的时间,可以直接导入,运行。建议实用eclipse,内容如下: 实例1 产生自己的控件 实例2 控件的排布示例 实例3 控件的相互控制与消息传递 实例4 ...

Global site tag (gtag.js) - Google Analytics