空心验证码(定制)

 1    Graphics2D graphics = (Graphics2D) image.getGraphics();
 2         graphics.setColor(color);
 3         RenderingHints hints = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
 4         hints.add(new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY));
 5         graphics.setRenderingHints(hints);
 6         FontRenderContext frc = graphics.getFontRenderContext();
 7         
 8         char[] wordChars = text.toCharArray();
 9         int startPosY = 40;
10         int startPosX = 60;
11         Random random = new Random();
12         for (int i = 0; i < wordChars.length; i++) {
13             graphics.setFont(fonts[0]);
14             char[] charToDraw = new char[] { wordChars[i] };
15             GlyphVector fontGV = fonts[0].createGlyphVector(frc, charToDraw);
16             Shape textShape = fontGV.getOutline();
17             AffineTransform rotate45 = AffineTransform.getRotateInstance(30 * Math.PI, 0, 0);
18             Shape rotatedText = rotate45.createTransformedShape(textShape);
19             graphics.translate(startPosX, startPosY);
20             graphics.draw(rotatedText);
21             startPosX = (random.nextInt(3) + 1) * 10;
22             startPosY = (random.nextInt(3) + 1);
23         }
24 
25   graphics.dispose();

扣空心,只支持一个一个字符的~,多个字符需要循环draw.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值