纯java生成验证码 java生成图片并保存
本代码可直接运行,生成的验证码是p_w_picpath.jpg,被保存在D盘的根目录下面。
package com.server;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.p_w_picpath.BufferedImage;
import java.io.File;
import java.util.Random;
import javax.p_w_picpathio.ImageIO;
import javax.p_w_picpathio.stream.ImageOutputStream;
public class Image {
public String sRand="";
public Color getRandColor(int fc,int bc){//给定范围获得随机颜色
Random random = new Random();
if(fc>255) fc=255;
if(bc>255) bc=255;
int r=fc+random.nextInt(bc-fc);
int g=fc+random.nextInt(bc-fc);
int b=fc+random.nextInt(bc-fc);
return new Color(r,g,b);
}
public BufferedImage creatImage(){
// 在内存中创建图象
int width=60, height=20;
BufferedImage p_w_picpath = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 获取图形上下文
Graphics g = p_w_picpath.getGraphics();
//生成随机类
Random random = new Random();
// 设定背景色
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);
//设定字体
g.setFont(new Font("Times New Roman",Font.PLAIN,18));
//画边框
//g.setColor(new Color());
//g.drawRect(0,0,width-1,height-1);
// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
g.setColor(getRandColor(160,200));
for (int i=0;i<155;i++)
{
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
}
// 取随机产生的认证码(4位数字)
//String rand = request.getParameter("rand");
//rand = rand.substring(0,rand.indexOf("."));
for (int i=0;i<4;i++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
// 将认证码显示到图象中
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));// 调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
g.drawString(rand,13*i+6,16);
}
// 图象生效
g.dispose();
return p_w_picpath;
}
public static void main(String[] args) {
File file=new File("D://p_w_picpath.jpg");
try{
BufferedImage p_w_picpath=new Image().creatImage();
ImageOutputStream p_w_picpathIo=ImageIO.createImageOutputStream(file);
ImageIO.write(p_w_picpath, "jpg", p_w_picpathIo);
}catch (Exception e) {
e.printStackTrace();// TODO: handle exception
}
}
}
转载于:https://blog.51cto.com/7883830/1705152
纯java生成验证码 java生成图片并保存相关推荐
- java生成验证码的三种方法
java生成验证码的三种方法 第一种:导入jar包com.github.axet生成法 ①导包 <dependency><groupId>com.github.axet< ...
- java生成验证码实例_Java生成验证码功能实例代码
页面上输入验证码是比较常见的一个功能,实现起来也很简单.给大家写一个简单的生成验证码的示例程序,需要的朋友可以借鉴一下. 闲话少续,直接上代码.代码中的注释很详细. package com.SM_te ...
- java生成验证码并进行验证
一实现思路 使用BufferedImage用于在内存中存储生成的验证码图片 使用Graphics来进行验证码图片的绘制,并将绘制在图片上的验证码存放到session中用于后续验证 最后通过ImageI ...
- 【可食用】KeyTool生成KeyStore,证书、公钥、私钥文档JAVA生成,JAVA实现ECC签名验签
KeyTool生成KeyStore,证书.公钥.私钥文档JAVA生成,JAVA实现ECC签名验签 一.首先我们可以写个工具类生成密钥对.证书.公钥.私钥文本 jksAndCerGenerator.ja ...
- java生成验证码登录,生成验证码
这里写了一个生成验证码的demo 前台可以访问该servlet页面显示验证码 验证码 后台存的session名称为vCode 判断验证码是否正确时可以直接调用 前台通过 这里你就自己引入jq吧 < ...
- 关于java生成验证码
一.读取外部txt文件生成二维码 jsp: <%@ page language="java" contentType="text/html; charset=UTF ...
- java控制器里面生成验证码,java + springmvc 酷炫验证码分享
java + springmvc 酷炫验证码分享 一.maven 依赖 com.github.bingoohuang patchca 0.0.1 二.spring mvc 控制器 import jav ...
- java生成验证码图片中仅有线条_Java实现验证码具体代码(图片、汉字)
本文为大家分享两个实例,相信大家一定会喜欢. 实例1:随机生成验证码图片并将之输出为一个png文件 效果图: import java.awt.Color; import java.awt.Font; ...
- java生成验证码工具类_Java生成图形验证码工具类
生成验证码效果 validatecode.java 验证码生成类 package cn.dsna.util.images; import java.awt.color; import java.awt ...
最新文章
- 深入了解android平台的jni---注册native函数
- 全球及中国甲基全氟异丁醚行业竞争现状与投资战略前景研究报告2022版
- 单单表单独占一行_数据透视表→Alt+D+P?
- SpringMVC:学习笔记(5)——数据绑定及表单标签
- JAVA程序设计计时器代码_Java中的定时器Timer使用示例代码详解
- 吉吉王国(二分+树形dp)
- vim如何开启256色
- 在CentOS上安装Docker
- cenos 安装 Docker
- DevComponents.DotNetBar2 美化包使用以及验证教程
- Mac与Linux SSH无密登陆(互信)
- 清华大学出版社2013年第二期书评征集图书列表
- 针对MacBook提示目前翻译不可用请稍后再试的解决方法
- matlab 雅各比符号,密码学与编码理论(第2版)(密码学方面的经典著作)
- 1001 害死人不偿命的(3n+1)猜想
- [Vue warn]: Unknown custom element: <mycom> - did you register the component correctly? For recursiv
- 6. unity之脚本
- 【联邦学习+区块链】FLchain: Federated Learning via MEC-enabled Blockchain Network
- 如何生成餐桌专属二维码
- Linux MTD设备文件系统