设计四位验证码。要求字母和数字扭曲,验证码表面有干扰线。两种验证码内容,一是汉字,二是大小写字母加上十位数字。(内附简单常用的汉字Unicode码值)
基本步骤:
1) 创建一张画布。采用BufferedImage类。
int width=100;
int height=30;
int x=0;
int y=0;
BufferedImage captchaCanvas=new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
2) 获取画笔对象。如果需要对验证码进行二维变换等更复杂的操作,需要使用Graphic2D类
Graphics2D captchaBrush=(Graphics2D)captchaCanvas.getGraphics();
3) 创建随机的验证码内容。
需要创建random对象,再去调用内部的方法。每一次都需要单独设置字母、画布、干扰线的颜色。
// 画出验证码矩形框。
captchaBrush.setColor(Color.CYAN);
captchaBrush.fillRect(x, y, width, height);
// 3) 创建随机的验证码内容。
// 4) 画验证码字母数字组合或汉字组合。 //str="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
String str = "\u7684\u4e00\u4e86\u662f\u6211\u4e0d\u5728\u4eba\u4eec\u6709\
u6765\u4ed6\u8fd9\u4e0a\u7740\u4e2a\u5730\u5230\u5927\u91cc\
u8bf4\u5c31\u53bb\u5b50\u5f97\u4e5f\u548c\u90a3\u8981\u4e0b\
u770b\u5929\u65f6\u8fc7\u51fa\u5c0f\u4e48\u8d77\u4f60\u90fd\
u628a\u597d\u8fd8\u591a\u6ca1\u4e3a\u53c8\u53ef\u5bb6\u5b66\
u53ea\u4ee5\u4e3b\u4f1a\u6837\u5e74\u60f3\u751f\u540c\u8001\
u4e2d\u5341\u4ece\u81ea\u9762\u524d\u5934\u9053\u5b83\u540e\
u7136\u8d70\u5f88\u50cf\u89c1\u4e24\u7528\u5979\u56fd\u52a8\
u8fdb\u6210\u56de\u