验证码的旋转与放缩代码

Posted 折腾青春

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了验证码的旋转与放缩代码相关的知识,希望对你有一定的参考价值。

public void demo2() throws IOException {
int w = 60;
int h = 30;
BufferedImage img = new BufferedImage(w, h,BufferedImage.TYPE_INT_RGB );
Graphics g = img.getGraphics();

//背景
g.setColor(Color.WHITE);
g.fillRect(0, 0, w, h);
//字体
g.setFont(new Font("aa", Font.BOLD, 18));
//输出验证码: 4个0~9之间的随机整数
Random r = new Random();
for(int i=0;i<4;i++){
int a = r.nextInt(10);
int y = 10+r.nextInt(20);//上下位置:10~30
Color c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255));
g.setColor(c);
g.drawString(""+a, i*16, y);
}
//画干扰线
for(int i=0;i<20;i++){
Color c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255));
g.setColor(c);
g.drawLine(r.nextInt(w), r.nextInt(h), r.nextInt(w), r.nextInt(h));
}

//把图形刷到img对象中
g.dispose();//相当于IO中的close()方法带动flush()
ImageIO.write(img, "JPEG", new FileOutputStream("d:/a/hello.jpg"));
}

}

----------------------------------------------------------------

@Test
public void demo3() throws IOException {
int w = 80;
int h = 30;
BufferedImage img = new BufferedImage(w, h,BufferedImage.TYPE_INT_RGB );
Graphics g = img.getGraphics();
Graphics2D g2d = ( Graphics2D )g; // ※※※
//字体
g2d.setFont(new Font("aa", Font.BOLD, 18));

//背景
g2d.setColor(Color.WHITE);
g2d.fillRect(0, 0, w, h);


//输出验证码: 4个0~9之间的随机整数
Random r = new Random();
for(int i=0;i<4;i++){
int a = r.nextInt(10);
int y = 10+r.nextInt(20);//上下位置:10~30
Color c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255));
g2d.setColor(c);

//旋转和放缩※※※
AffineTransform tx = new AffineTransform();
tx.rotate(r.nextDouble(), i*16, y-5);
tx.scale(0.6+r.nextDouble(), 0.6+r.nextDouble());
g2d.setTransform(tx);

g2d.drawString(""+a, i*16, y);
}
//画干扰线
for(int i=0;i<10;i++){
Color c = new Color(r.nextInt(255),r.nextInt(255),r.nextInt(255));
g2d.setColor(c);
g2d.drawLine(r.nextInt(w), r.nextInt(h), r.nextInt(w), r.nextInt(h));
}

//把图形刷到img对象中
g2d.dispose();//相当于IO中的close()方法带动flush()
ImageIO.write(img, "JPEG", new FileOutputStream("d:/a/hello.jpg"));
}

}

以上是关于验证码的旋转与放缩代码的主要内容,如果未能解决你的问题,请参考以下文章

如何用PHP生成验证码

验证码识别---基本流程

四位由数字和字母组成的验证码的代码

ASP.NET中登陆验证码的生成和输入验证码的验证

javaweb中如何实时判定验证码的正误

登录验证随机验证码的实现