验证码的旋转与放缩代码
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"));
}
}
转载于:https://www.cnblogs.com/1314wamm/p/5908679.html
验证码的旋转与放缩代码相关推荐
- (7)ObjectARX2015 + vs2012创建多段线以及实体的旋转移动放缩
提示:看之前的博客(1)和(4),那里已经分析了创建一个图形对象的基本过程,在之前的基础上本节开始就要将着眼点放在创建实体的参数上. (1)ObjectARX2015 + vs2012创建直线_qq_ ...
- 验证码之旋转印刷文字识别实战
GitHub - CaoYuGang/crnn_word_captcha: 验证码之旋转印刷文字识别实战 项目完全试用Geetest的文字点选项目 文本主要描述旋转印刷文字验证码的识别训练,适读人群为 ...
- Processing 教程(7) - 平移、旋转、放缩
首先定义一些辅助线函数,并且测试: float cm = 3.767; void setup() {size(720,404);frameRate(2); }// 画垂直线的函数,参数为x: void ...
- pillow模块批量 读取图像、旋转、放缩、裁剪图片等操作
1_pillow模块批量 读取图像.旋转.放缩.裁剪图片等操作(20190104 文章目录 1.pillow的安装和导入 2.pillow 读取.放缩.旋转.左右翻转.上下翻转图片操作 3.pillo ...
- 网易云信,发送验证码短信C#版代码
网易云信,发送验证码短信C#版代码 网易云信发送短信代码(C# 版)....需要注意SHA1 String有转换小写!!!! using System; using System.Collection ...
- 图片的增强之-裁剪、旋转、放缩
一.图片增强 当我们训练深度学习模型的时候,你的图片数据集可能数量太少或者是有的类别数量过少,你就可以通过对图片进行裁剪.旋转和放缩来完成图片数量的扩充.PS:参考的那篇文章找不到链接了,实在不好意思 ...
- 图片可以360度旋转类似广告代码
图片可以360度旋转类似广告代码 <div style='height:60px; line-height:50px; text-align:center; color: #b2b2b2;'&g ...
- 5款实用的jQuery验证码插件(附js,jQuery代码)
5款实用的jQuery验证码插件 5款实用的jQuery验证码插件分享给大家,分别有普通字母数字验证码.运算验证码.滑动验证码.点选验证码,纯前端的网页验证码代码. 在线演示地址:5款实用的jQuer ...
- 2020-09-28 微信小程序6位或多位验证码密码输入框功能的实现代码
微信小程序6位或多位验证码密码输入框功能的实现代码 转载https://www.jb51.net/article/141085.htm
- 【Unity】通过2种方法实现摄像机的移动,旋转,放缩
今天跟着Joe老师学习了在3D场景中进行场景移动的两种方法 摄像机移动方法 最基本的移动方式 通过GetAxisRaw实现摄像机的水平移动 在鼠标移动至界面边缘时也会移动: 设定相机移动的范围 方法一 ...
最新文章
- RabbitMQ是什么
- xmindcore.java_求解Xmind问题
- WiFi CC3200模块 加速IOT物联网发展
- 2017/Province_Java_B/2、纸牌三角形
- WPF 关于鼠标事件和坐标
- 【POJ - 1751】Highways (最小生成树)
- mtk android 5.1 logo,Android ROM DIY之MTK平台手机通用移植
- 【懒人有道】在asp.net core中实现程序集注入
- js排序算法详解-冒泡排序
- 个人知识管理能解决什么问题?
- 十大排序算法——冒泡法
- [笔记]ASCLL码表(48 “0”,65 “A”,97 “a”)2022.3.12
- 微博黄v怎么认证?怎么满足条件详解 身份认证|兴趣认证|视频认证
- 精简版WIN XP安装日文输入法
- 进入微信公众平台自动跳转到小程序界面,而不是微信公众号界面。
- 证券secuerity英语
- java 两张图片叠加合并
- 解决Mac电脑开机无法自动连接蓝牙音箱问题!
- Android源码分析工具及方法
- 一日一技:极其简单,用Python写前端