`
sun_cat
  • 浏览: 73470 次
社区版块
存档分类
最新评论

产生随机数图片

    博客分类:
  • jsp
阅读更多
可以产生一个小图片上面有生成的随机数,当作验证码
引用方式<img border=0 src="image.jsp">

<%@ page contentType="image/jpeg" %>
<%@ page import="java.awt.*"%>
<%@ page import="java.awt.image.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="com.sun.image.codec.jpeg.*"%>
<%!
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);
        }
%>
<%
System.setProperty("java.awt.headless", "true");
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);

// 在内存中创建图象
int width=60, 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条干扰线,使图象中的认证码不易被其它程序探测到
g.setColor(getRandColor(160,200));
for (int i=0;i<155;i++)
{
int x = random.nextInt(width);
int y = random.nextInt(height);
        int xl = random.nextInt(12);
        int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
}

// 取随机产生的认证码(4位数字)
String 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);
}

// 将认证码存入SESSION
session.setAttribute("rand",sRand);


// 图象生效
g.dispose();

// 输出图象到页面

//ImageIO.write(image, "JPEG", response.getOutputStream());
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(response.getOutputStream());
encoder.encode(image);
%>

分享到:
评论

相关推荐

    PHP图片验证码 产生随机数自动生成图片

    使用时将button.php作为图片加入网页,如: 验证码判断时如验证码输入框名称为code时,则用 $code != $_SESSION['code']判断验证码是否正确

    JavaScript 创建随机数和随机图片

    ②基于时间,亦可以产生随机数。例如: var now=new Date(); var number = now.getSeconds(); 这将产生一个基于目前时间的0到59的整数。 var now=new Date(); var number = now.getSeconds()C; 这将产生一个基于...

    vb.net随机数生成+冒泡排序

    在VB.NET编程环境中,生成随机数和实现冒泡排序是两个重要的基础知识点。这里我们将深入探讨这两个主题,并结合描述中的内容进行详细说明。 首先,让我们来看看如何在VB.NET中生成随机数。VB.NET提供了`Random`类来...

    achartengine 利用随机数产生的动态线性图和柱形图

    在“achartengine 利用随机数产生的动态线性图和柱形图”这个主题中,我们将深入探讨如何利用AChartEngine生成基于随机数的动态图表,尤其是线性图和柱形图,这两种图表在金融领域,如股票和期货市场分析中非常常见...

    JSP 生成随机验证码图片(经典老代码)

    JSP 生成随机验证码图片(经典老代码)

    textFZ01.zip_pooriba_最小值_随机数_随机生成图片

    产生特定随机数,并且求和,循环求最小值。能够快速的解决问题,生成三维图片

    JavaScript网页制作特殊效果用随机数

    实现跳动文字效果需要使用Math.random()函数产生随机数,然后使用Math.floor()函数将随机数转换为整数,以改变文字大小和颜色。同时,使用setTimeout()函数来设置文字跳动的间隔时间。 代码实现: ``` function ...

    JS随机数产生代码分享

    在开发过程中,随机数的生成是一个非常常见的需求,比如随机显示图片、生成随机背景或者在小游戏中的应用等。本文将会详细介绍如何利用JavaScript实现随机数的生成,并分享一段简单的代码示例。 在JavaScript中,...

    用作图的方法检测随机数的方法产生的随机效果

    通过php的gd扩展来创建图片,验证伪随机数的方法产生的随机效果,左侧是mt_rand()函数图象,右侧是rand()函数图象。程序可扩展检验自己的随机程序的随机性等。

    用jsp页面生成随机的验证数字码示例

    在客户端,验证码被放置在一个输入框和一个图片上,图片绑定一个点击事件,用于刷新验证码。当用户提交表单时,需要将输入框中的值与session中存储的验证码进行比对,从而验证用户是否输入正确的验证码。 总结来说...

    CamRand:使用网络摄像头生成随机数

    然后,它遍历图片的像素以创建一串位。 然后,此字符串将被散列,并与先前的种子进行比较。 因此,CamRand确保了独特种子的创建。 如果持续得到0,请确保正确安装了FsWebcam,并使相机面对某种熵源。 即使是面对白...

    JAVA小游戏2—拼图

    Initgame()函数是自写函数,在函数体内,通过调用Math.random()函数产生随机数,用来达到图片位置摆放的随意性和随机性。最后,因为要实现人机交互.,所以首先要通过一系列函数来实现对鼠标事件的监听和响应,这是...

    图片的随机排列

    本插件“图片的随机排列”专注于实现这一功能,通过产生随机数来重新组织图片的位置,使得页面每次刷新时都有不同的显示,增加了用户交互的趣味性和多样性。 首先,我们来理解这个插件的核心概念——随机数生成。在...

    android 验证码图片的一种实现

    android 验证码图片的一个小Demo,基础功能都,有了,包括点击更新,产生随机数,验证码位置动态变化等,大家下载后可按需修改。

    LSB图像信息隐藏实验.pdf

    4. 按照产生的随机数的序列依次将图片层的最后一位改为消息的信息。 5. 嵌入完成后,如果为RGB,则将该层返回原图像。 知识点4:LSB提取算法 LSB提取算法的步骤是: 1. 读取隐藏信息的图像。 2. 以二进制形式读取...

    一种基于PHP验证码图片的实现

    产生加入了干扰像素的图片 首先,我们需要创建一个空白的图片画布,并设置相应的颜色值。在PHP中,可以使用GD库来生成图像。以下是一段示例代码: ```php // 创建一个58x28像素的图片 $im = imagecreate(58, 28); ...

    Random函数

    首先,Random 类是 .NET Framework 中提供的专门产生随机数的类,默认情况下已经被导入,编程过程中可以直接使用。Random 类的主要方法是 Next(),用于生成随机数。 Next() 方法有多种重载形式,例如 Next(int) 和 ...

    年会活动节日抽奖软件工具

    做了一个年会抽奖的小软件,支持产生随机数、在固定列表中随机选择,支持自定义背景图片和提示词的字体、颜色等。 按空格开始/结束,按Esc退出程序。 通过配置config.ini和Layout.ini进行配置,一共有2个版本,一个...

    ASP动态产生图片验证码的方法

    1. **随机字符生成**:使用C#的Random类生成一个随机数,然后根据这个随机数从预设的字符集中选取字符。字符集通常包括大小写字母和数字,有时还会加入特殊字符以增加复杂性。 ```csharp string chars = ...

    DSP算法大全C语言版.pdf

    混合同余法是一种广泛使用的伪随机数生成算法,它的核心思想是利用递推公式和模运算产生随机数序列。文档中给出了具体算法的代码实现,包括如何设置初值和参数,以及如何通过模运算和线性变换得到指定区间上的均匀...

Global site tag (gtag.js) - Google Analytics