日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 验证码 源码_java 验证码生成源码

發布時間:2025/3/21 编程问答 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 验证码 源码_java 验证码生成源码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

fontList = new ArrayList();

fontList.add(new Font("微軟 雅黑", Font.LAYOUT_NO_START_CONTEXT, 30));// 可以設置斜體之類的

DefaultWordRenderer dwr = new DefaultWordRenderer(getRandomColor(), fontList);

// 加入多種顏色后會隨機顯示 字體空心

WordRenderer wr = dwr;

// 增加文本,默認為5個隨機字符.

if (_text == null) {

builder.addText();

} else {

String[] ts = _text.split(",");

for (int i = 0; i < ts.length; i++) {

String[] ts1 = ts[i].split(":");

if ("chinese".equals(ts1[0])) {

builder.addText(new ChineseTextProducer(Integer.parseInt(ts1[1])), wr);

} else if ("number".equals(ts1[0])) {

// 這里沒有0和1是為了避免歧義 和字母I和O

char[] numberChar = new char[] { '2', '3', '4', '5', '6', '7', '8' };

builder.addText(new DefaultTextProducer(Integer.parseInt(ts1[1]), numberChar), wr);

} else if ("word".equals(ts1[0])) {

// 原理同上

char[] numberChar = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'k', 'm', 'n', 'p', 'r',

'w', 'x', 'y' };

builder.addText(new DefaultTextProducer(Integer.parseInt(ts1[1]), numberChar), wr);

} else {

builder.addText(new DefaultTextProducer(Integer.parseInt(ts1[1])), wr);

}

}

}

// --------------添加背景-------------

// 設置背景漸進效果 以及顏色 form為開始顏色,to為結束顏色

// GradiatedBackgroundProducer gbp=new GradiatedBackgroundProducer();

// gbp.setFromColor(Color.yellow);

// gbp.setToColor(Color.red);

// 無漸進效果,只是填充背景顏色

// FlatColorBackgroundProducer fbp=new

// FlatColorBackgroundProducer(Color.red);

// 加入網紋--一般不會用

// SquigglesBackgroundProducer sbp=new SquigglesBackgroundProducer();

// 沒發現有什么用,可能就是默認的

// TransparentBackgroundProducer tbp = new

// TransparentBackgroundProducer();

// builder.addBackground(gbp);

// ---------裝飾字體---------------

// 字體邊框齒輪效果 默認是3

builder.gimp(new BlockGimpyRenderer(1));

// 波紋渲染 相當于加粗

// builder.gimp(new RippleGimpyRenderer());

// 修剪--一般不會用

// builder.gimp(new ShearGimpyRenderer(Color.red));

// 加網--第一個參數是橫線顏色,第二個參數是豎線顏色

// builder.gimp(new FishEyeGimpyRenderer(Color.red,Color.yellow));

// 加入陰影效果 默認3,75

// builder.gimp(new DropShadowGimpyRenderer());

// 創建對象

Captcha captcha = builder.build();

req.getSession().setAttribute("simpleCaptcha", captcha);

resp.setHeader("Cache-Control", "private,no-cache,no-store");

resp.setContentType("image/png");

try {

OutputStream os = resp.getOutputStream();

ImageIO.write(captcha.getImage(), "png", os);

os.close();

} catch (IOException e) {

e.printStackTrace();

}

}

public Color getRandomColor() {

int n = RandomUtils.nextInt(100);

if (n % 3 == 1) {

return Color.RED;

} else if (n % 3 == 2) {

return Color.BLUE;

}

return Color.GREEN;

}

}

總結

以上是生活随笔為你收集整理的java 验证码 源码_java 验证码生成源码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。