`
Tristan_S
  • 浏览: 378688 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

生成java图片验证码

阅读更多
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图片验证码 图片验证码JAVA图片验证码 图片验证码

    java生成图片验证码

    Java作为一门广泛使用的服务器端编程语言,提供了丰富的功能来生成图片验证码。本篇将深入讲解如何使用Java Servlet来实现这一过程。 首先,我们来看标题"java生成图片验证码"。这个标题暗示我们将探讨的是在Java...

    java 生成动态gif 验证码

    在Java开发中,生成动态GIF验证码是一种常见的安全机制,用于防止自动机器人或者恶意脚本对网站进行非法操作。这种验证码通常包含随机生成的字母、数字或者符号,以动画的形式展示,用户需要输入看到的验证码才能...

    java 生成图片验证码

    在IT领域,验证码(CAPTCHA)是一...在提供的压缩包文件“图片验证码生成”中,可能包含了实现上述功能的源代码示例,你可以通过学习和理解这些代码,加深对Java生成图片验证码的理解,并根据实际需求进行调整和优化。

    java生成验图片验证码

    在本项目中,我们关注的是使用Java来生成图像验证码的技术。下面将详细介绍这个主题。 Java生成图像验证码涉及到以下几个关键知识点: 1. **随机数生成**:验证码通常由一组随机生成的字符组成,可以是数字、字母...

    Java图片验证码生成工具类

    好看的图片验证码,包含干扰线、噪点、扭曲图片等。。

    java 生成gif 图片验证码

    Java作为一款多用途的编程语言,提供了丰富的库和方法来生成包括GIF格式在内的图片验证码。下面将详细讨论如何在Java中创建GIF动态验证码。 首先,我们需要理解GIF图片验证码的基本构成。它通常包含随机生成的文字...

    Java生成图片验证码

    在本主题中,我们将深入探讨如何使用Java来生成图片验证码。Java生成图片验证码的过程涉及图像处理、随机数生成以及字符串编码等多个知识点。 首先,验证码的核心是生成一个随机的字符串,通常包含字母和数字。在...

    Java随机生成验证码图片

    Java随机生成验证码图片,适用于web登录验证等。个人觉得很不错~

    Java servlet 自动生成 图片验证码 生成 Java源码

    Java servlet 自动生成 图片验证码 生成 Java源码

    JAVA实现随机图片验证码简单方法

    JAVA实现随机图片验证码简单方法.rtf

    Java生成算数运算中文图片验证码

    Java生成算数运算中文图片验证码的实现,结合了编程语言、图像处理和安全验证的多种技术,为用户提供了一种既安全又友好的验证方式。下面我们将深入探讨这个主题。 首先,验证码的核心是生成随机的算数运算表达式。...

    Java图片验证码工具类

    5. **保存和显示验证码图片**: 生成验证码后,需要将其保存为一个图像文件,例如JPEG或PNG格式,可以使用`ImageIO.write()`方法。在Web应用中,这个图片会被发送到客户端浏览器显示。 6. **文本验证码的存储**: ...

    java图片滑动验证码

    本资源是java生成图片滑动验证码源码,具体使用可参考https://blog.csdn.net/shiqiangwen/article/details/89888092

    Java实现点击文字验证码与拖动/滑动图片验证码(源码+demo+单元测试+实现思路)

    图片生成随机位置 随机中文文字、随机抠图、拼图都只需要用到BufferedImage和Graphics2D。 3.2.前端熟悉点击事件,根据点击事件的坐标位置、图片的位置、浏览器的滚动位置算 出点击图片的相对位置;熟悉拖动原理...

    java图片验证码源码

    这个简单的Java验证码源码示例涵盖了基础的图像处理和字符串随机生成。然而,实际应用中可能需要考虑更多高级特性,如字体变形、颜色渐变、噪点滤波等,以提高验证码的安全性和用户体验。在开发过程中,可以利用开源...

    java生成验证码的参考资料(中英文验证码)

    本参考资料主要围绕Java生成中英文验证码展开,旨在帮助开发者理解并实现验证码功能。 首先,验证码的生成通常涉及到以下几个关键步骤: 1. **随机字符生成**:验证码由一组随机字符组成,可以是数字、字母,也...

    java生成验证码demo

    这个"java生成验证码demo"提供了生成自定义验证码图片的方法,包括设置图片尺寸、验证码长度,以及添加各种视觉混淆元素,以增加机器识别的难度。 首先,我们要理解验证码的基本原理。它通常由一组随机生成的字母或...

Global site tag (gtag.js) - Google Analytics