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 生成gif 图片验证码,可以应用于生产环境
好看的图片验证码,包含干扰线、噪点、扭曲图片等。。
Java生成图片验证码 Java代码
Java随机生成验证码图片,适用于web登录验证等。个人觉得很不错~
Java servlet 自动生成 图片验证码 生成 Java源码
JAVA实现随机图片验证码简单方法.rtf
图片生成随机位置 随机中文文字、随机抠图、拼图都只需要用到BufferedImage和Graphics2D。 3.2.前端熟悉点击事件,根据点击事件的坐标位置、图片的位置、浏览器的滚动位置算 出点击图片的相对位置;熟悉拖动原理...
java生成验证码源码包括彩色验证码 包括jsp生成验证码和彩色验证码
java 生成随机图片验证码 ,字母数组随机组合,加干扰线
随机验证码。 - 随机生成十组六位字符组成的验证码。 - 验证码由大小写字母、数字字符组成。
java生成的随机验证码
java 动态 gif 验证码 工具类 + servlet调用方法 + 测试jsp
java生成验证码图片的文件已完成测试
java生成验证码图片,资源包括自定义图片尺寸和验证码长度,每个字符随机偏移角度,字符平滑边缘,含干扰线、噪点和背景扭曲。
java后台生成背景色透明验证码的方法,可直接调用。本方法只生成随机字符数字组成的四位验证码。