当前位置 : 主页 > 编程语言 > java >

Java-创建图片验证码descriptor

来源:互联网 收集:自由互联 发布时间:2022-07-13
public static void main(String[] args) throws Exception{ //这里读者自己定义随机 ,通常都是定义一个0-9,A-Z的字符串 //然后从字符串里随机的拿出五个字符即可,我这里是写死的"AB3DF" String s = "A


public static void main(String[] args) throws Exception{
//这里读者自己定义随机 ,通常都是定义一个0-9,A-Z的字符串
//然后从字符串里随机的拿出五个字符即可,我这里是写死的"AB3DF"
String s = "AB3DF";

//创建画板
BufferedImage bi = new BufferedImage(200, 54, BufferedImage.TYPE_INT_RGB);
Graphics2D pen = bi.createGraphics();//创建画笔
//---------------------画图---------------------
pen.setColor(Color.gray);//画笔颜色,据说和setPaint是一样的
pen.fillRect(0, 0, 200, 54);//直接填充画板的背景颜色
//---------------------写字---------------------
pen.setPaint(Color.YELLOW); //画笔颜色,据说和setColor是一样的
//Algerian为字体样式 ,请去我博客查看博文《Java-获取本地都有哪些字体》
//Font.BOLD为字体风格(比如你是斜体,还是加粗?)
//50为字体的大小
Font font = new Font("Algerian", Font.BOLD, 50);
pen.setFont(font);
pen.drawString(s, 15, 45);//15, 45是字体的左下角坐标(切记不是左上)
//---------------------绘制40条干扰线---------------------
pen.setColor(Color.WHITE);//画笔颜色
Random random=new Random();//准备随机画线段
for(int i=0;i<40;i++){
//g2.drawLine(线段起始横坐标,起始竖坐标,结束横坐标,结束竖坐标)
int pointa=random.nextInt(200);
int pointb=random.nextInt(54);
int pointc=random.nextInt(200);
int pointd=random.nextInt(54);
pen.drawLine(pointa, pointb, pointc,pointd);
}
//---------------------生成图像---------------------
OutputStream output=new FileOutputStream("C:\\Users\\alibaba\\Desktop\\check.jpg");
ImageIO.write(bi, "jpg", output);
}


上一篇:Java-获取本地都有哪些字体
下一篇:没有了
网友评论