package com.tristan;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;
import javax.imageio.ImageIO;
public class Image {
public static void main(String[] args) throws FileNotFoundException {
File f = new File("c:/1.jpg");
OutputStream os = new FileOutputStream(f);
new Image().getCertPic(0, 0, os);
}
//验证码图片中可以出现的字符集,可根据需要修改
private char mapTable[]={
'a','b','c','d','e','h',
'j','k','m','n','p','q',
'r','s','t','u','v','w',
'x','y','z','0','2','3',
'4','5','6','7','8','9'
};
public String getCertPic(int width, int height,OutputStream os) {
if(width<=0) {
width=60;
}
if(height<=0) {
height=20;
}
BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
//获取图形上下文
Graphics g = image.getGraphics();
//设定背景颜色
g.setColor(new Color(0xDCDCDC));
g.fillRect(0, 0, width, height);
//画边框
g.setColor(Color.black);
g.drawRect(0, 0, width-1, height-1);
//随机产生的验证码
String strEnsure="";
//4代表4位验证码,如果要生成等多位的验证码 ,则加大数值
for(int i=0; i<4; i++) {
strEnsure += mapTable[(int)(mapTable.length*Math.random())];
}
//将验证码显示在图像中,如果要生成更多位的验证码,增加drawString语句
g.setColor(Color.black);
g.setFont(new Font("Atlantic Inline", Font.PLAIN,18));
String str = strEnsure.substring(0, 1);
g.drawString(str, 8, 17);
str = strEnsure.substring(1, 2);
g.drawString(str, 20, 15);
str = strEnsure.substring(2, 3);
g.drawString(str, 35, 18);
str = strEnsure.substring(3, 4);
g.drawString(str, 45, 15);
//随机产生10个干扰点
Random random = new Random();
for(int i=0; i<10; i++ ) {
int x = random.nextInt(width);
int y = random.nextInt(height);
g.drawOval(x, y, 1, 1);
}
//释放图形上下文
g.dispose();
try{
//输出图像到页面
ImageIO.write(image, "JPEG", os);
}catch(IOException e) {
return "";
}
return strEnsure;
}
}
分享到:
相关推荐
java生成验证码的工具类,这个现在有依赖可以直接引入调用,但这个工具类没有引入依赖,大家也容易看懂代码,理解其含义。也可直接去工具类中调整生成验证码的宽度、高度、颜色、背景颜色、生成的随机数数量、干扰线...
源码提供了一个生成图片验证码的工具类,适用于各种需要验证码的场景,如用户注册、...生成的验证码图片背景透明,线条清晰,可轻松辨认。本源码包含了工具类源码及调用示例,可供开发者参考使用,集成到您的项目中。
JAVA图片验证码 图片验证码JAVA图片验证码 图片验证码JAVA图片验证码 图片验证码JAVA图片验证码 图片验证码JAVA图片验证码 图片验证码JAVA图片验证码 图片验证码
Java作为一门广泛使用的服务器端编程语言,提供了丰富的功能来生成图片验证码。本篇将深入讲解如何使用Java Servlet来实现这一过程。 首先,我们来看标题"java生成图片验证码"。这个标题暗示我们将探讨的是在Java...
在Java开发中,生成动态GIF验证码是一种常见的安全机制,用于防止自动机器人或者恶意脚本对网站进行非法操作。这种验证码通常包含随机生成的字母、数字或者符号,以动画的形式展示,用户需要输入看到的验证码才能...
在IT领域,验证码(CAPTCHA)是一...在提供的压缩包文件“图片验证码生成”中,可能包含了实现上述功能的源代码示例,你可以通过学习和理解这些代码,加深对Java生成图片验证码的理解,并根据实际需求进行调整和优化。
在本项目中,我们关注的是使用Java来生成图像验证码的技术。下面将详细介绍这个主题。 Java生成图像验证码涉及到以下几个关键知识点: 1. **随机数生成**:验证码通常由一组随机生成的字符组成,可以是数字、字母...
好看的图片验证码,包含干扰线、噪点、扭曲图片等。。
Java作为一款多用途的编程语言,提供了丰富的库和方法来生成包括GIF格式在内的图片验证码。下面将详细讨论如何在Java中创建GIF动态验证码。 首先,我们需要理解GIF图片验证码的基本构成。它通常包含随机生成的文字...
在本主题中,我们将深入探讨如何使用Java来生成图片验证码。Java生成图片验证码的过程涉及图像处理、随机数生成以及字符串编码等多个知识点。 首先,验证码的核心是生成一个随机的字符串,通常包含字母和数字。在...
Java随机生成验证码图片,适用于web登录验证等。个人觉得很不错~
Java servlet 自动生成 图片验证码 生成 Java源码
JAVA实现随机图片验证码简单方法.rtf
Java生成算数运算中文图片验证码的实现,结合了编程语言、图像处理和安全验证的多种技术,为用户提供了一种既安全又友好的验证方式。下面我们将深入探讨这个主题。 首先,验证码的核心是生成随机的算数运算表达式。...
5. **保存和显示验证码图片**: 生成验证码后,需要将其保存为一个图像文件,例如JPEG或PNG格式,可以使用`ImageIO.write()`方法。在Web应用中,这个图片会被发送到客户端浏览器显示。 6. **文本验证码的存储**: ...
本资源是java生成图片滑动验证码源码,具体使用可参考https://blog.csdn.net/shiqiangwen/article/details/89888092
图片生成随机位置 随机中文文字、随机抠图、拼图都只需要用到BufferedImage和Graphics2D。 3.2.前端熟悉点击事件,根据点击事件的坐标位置、图片的位置、浏览器的滚动位置算 出点击图片的相对位置;熟悉拖动原理...
这个简单的Java验证码源码示例涵盖了基础的图像处理和字符串随机生成。然而,实际应用中可能需要考虑更多高级特性,如字体变形、颜色渐变、噪点滤波等,以提高验证码的安全性和用户体验。在开发过程中,可以利用开源...
本参考资料主要围绕Java生成中英文验证码展开,旨在帮助开发者理解并实现验证码功能。 首先,验证码的生成通常涉及到以下几个关键步骤: 1. **随机字符生成**:验证码由一组随机字符组成,可以是数字、字母,也...
这个"java生成验证码demo"提供了生成自定义验证码图片的方法,包括设置图片尺寸、验证码长度,以及添加各种视觉混淆元素,以增加机器识别的难度。 首先,我们要理解验证码的基本原理。它通常由一组随机生成的字母或...