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

验证码的旋转与放缩代码相关推荐

  1. (7)ObjectARX2015 + vs2012创建多段线以及实体的旋转移动放缩

    提示:看之前的博客(1)和(4),那里已经分析了创建一个图形对象的基本过程,在之前的基础上本节开始就要将着眼点放在创建实体的参数上. (1)ObjectARX2015 + vs2012创建直线_qq_ ...

  2. 验证码之旋转印刷文字识别实战

    GitHub - CaoYuGang/crnn_word_captcha: 验证码之旋转印刷文字识别实战 项目完全试用Geetest的文字点选项目 文本主要描述旋转印刷文字验证码的识别训练,适读人群为 ...

  3. Processing 教程(7) - 平移、旋转、放缩

    首先定义一些辅助线函数,并且测试: float cm = 3.767; void setup() {size(720,404);frameRate(2); }// 画垂直线的函数,参数为x: void ...

  4. pillow模块批量 读取图像、旋转、放缩、裁剪图片等操作

    1_pillow模块批量 读取图像.旋转.放缩.裁剪图片等操作(20190104 文章目录 1.pillow的安装和导入 2.pillow 读取.放缩.旋转.左右翻转.上下翻转图片操作 3.pillo ...

  5. 网易云信,发送验证码短信C#版代码

    网易云信,发送验证码短信C#版代码 网易云信发送短信代码(C# 版)....需要注意SHA1 String有转换小写!!!! using System; using System.Collection ...

  6. 图片的增强之-裁剪、旋转、放缩

    一.图片增强 当我们训练深度学习模型的时候,你的图片数据集可能数量太少或者是有的类别数量过少,你就可以通过对图片进行裁剪.旋转和放缩来完成图片数量的扩充.PS:参考的那篇文章找不到链接了,实在不好意思 ...

  7. 图片可以360度旋转类似广告代码

    图片可以360度旋转类似广告代码 <div style='height:60px; line-height:50px; text-align:center; color: #b2b2b2;'&g ...

  8. 5款实用的jQuery验证码插件(附js,jQuery代码)

    5款实用的jQuery验证码插件 5款实用的jQuery验证码插件分享给大家,分别有普通字母数字验证码.运算验证码.滑动验证码.点选验证码,纯前端的网页验证码代码. 在线演示地址:5款实用的jQuer ...

  9. 2020-09-28 微信小程序6位或多位验证码密码输入框功能的实现代码

    微信小程序6位或多位验证码密码输入框功能的实现代码 转载https://www.jb51.net/article/141085.htm

  10. 【Unity】通过2种方法实现摄像机的移动,旋转,放缩

    今天跟着Joe老师学习了在3D场景中进行场景移动的两种方法 摄像机移动方法 最基本的移动方式 通过GetAxisRaw实现摄像机的水平移动 在鼠标移动至界面边缘时也会移动: 设定相机移动的范围 方法一 ...

最新文章

  1. RabbitMQ是什么
  2. xmindcore.java_求解Xmind问题
  3. WiFi CC3200模块 加速IOT物联网发展
  4. 2017/Province_Java_B/2、纸牌三角形
  5. WPF 关于鼠标事件和坐标
  6. 【POJ - 1751】Highways (最小生成树)
  7. mtk android 5.1 logo,Android ROM DIY之MTK平台手机通用移植
  8. 【懒人有道】在asp.net core中实现程序集注入
  9. js排序算法详解-冒泡排序
  10. 个人知识管理能解决什么问题?
  11. 十大排序算法——冒泡法
  12. [笔记]ASCLL码表(48 “0”,65 “A”,97 “a”)2022.3.12
  13. 微博黄v怎么认证?怎么满足条件详解 身份认证|兴趣认证|视频认证
  14. 精简版WIN XP安装日文输入法
  15. 进入微信公众平台自动跳转到小程序界面,而不是微信公众号界面。
  16. 证券secuerity英语
  17. java 两张图片叠加合并
  18. 解决Mac电脑开机无法自动连接蓝牙音箱问题!
  19. Android源码分析工具及方法
  20. 一日一技:极其简单,用Python写前端

热门文章

  1. 大型WEB系统架构的那些组成
  2. 掌握好这几点方法学习Linux,一定比别人更快入门运维!
  3. 其实,我被 Fenng 拉黑过!
  4. 推荐几个非常有用的工具
  5. SVN增加文件后,文件无法自动包括在项目中的原因
  6. pthread库实现一个简单的任务池
  7. 七周七语言——Prolog(二)
  8. 用JavaScript获取输入的特殊字符
  9. CentOS 7 安装Java 1.8
  10. autoComplete实现的输入下拉联想功能