public class ImageGenerator {

	private static final Color[] colors = new Color[] { new Color(129, 198, 132), new Color(149, 117, 204), new Color(255, 187, 68),
new Color(41, 181, 245), new Color(254, 138, 128), new Color(240, 98, 146) }; /**
* 生成图片 int width = 100; int height = 100;
*
* @param name
* @param width
* @param height
* @throws IOException
*/
public static InputStream generateImg(char ch) throws IOException {
return generateImg(ch, 80, 80, 40);
} /**
*
* @param ch
* @param width
* @param height
* @throws IOException
*/
public static InputStream generateImg(char ch, int width, int height, int fontSize) throws IOException {
BufferedImage bufferedImage = generateBufferedImage(ch, width, height, fontSize);
ByteArrayOutputStream bs = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "png", bs);
InputStream is = new ByteArrayInputStream(bs.toByteArray());
return is;
} /**
*
* @param ch
* @param width
* @param height
* @throws IOException
*/
public static BufferedImage generateBufferedImage(char ch, int width, int height, int fontSize) throws IOException {
Font font = new Font("黑体", Font.PLAIN, fontSize);
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = (Graphics2D) bufferedImage.createGraphics(); // 增加下面代码使得背景透明
bufferedImage = g2.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);
g2.dispose();
g2 = bufferedImage.createGraphics(); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); // g2.setBackground(getRandomColor());
// g2.clearRect(0, 0, width, height);
g2.setFont(font);
g2.drawOval(0, 0, width, height);
g2.setPaint(getRandomColor());
g2.fillOval(0, 0, width, height); g2.setPaint(Color.white);
FontMetrics fm = sun.font.FontDesignMetrics.getMetrics(font);
int w = fm.charWidth(ch);
int h = fm.getAscent();
g2.drawString((ch + "").toUpperCase(), (width - w) / 2, h + (height - h) / 2 - (fm.getHeight() - h) / 2); g2.dispose();
return bufferedImage;
} public static Color getRandomColor() {
Random r = new Random();
return colors[r.nextInt(colors.length)];
} public static void main(String[] args) {
File imgFile = new File("D:/1111111111111111.png");
File imgFile2 = new File("D:/11111111111111cdscsdcsdcsdcsdc11.png");
try { IOUtils.copy(ImageGenerator.generateImg('何'), new FileOutputStream(imgFile));
ImageIO.write(ImageGenerator.generateBufferedImage('A', 100, 100, 50), "png", imgFile2);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("生成完成");
}
}

  

java绘制带姓的圆的更多相关文章

  1. Turtle绘制带颜色和字体的图形(Python3)

    转载自https://blog.csdn.net/wumenglu1018/article/details/78184930 在Python中有很多编写图形程序的方法,一个简单的启动图形化程序设计的方 ...

  2. Java实现带logo的二维码

    Java实现带logo的二维码 二维码应用到生活的各个方面,会用代码实现二维码,我想一定是一项加分的技能.好了,我们来一起实现一下吧. 我们实现的二维码是基于QR Code的标准的,QR Code是由 ...

  3. JAVA实现带图片的列表——JList

    JList:显示对象列表并且允许用户选择一个或多个项的组件. JList的构造方法: 1.根据数组创建列表: JList(Object[] listData) 构造一个 JList,使其显示指定数组中 ...

  4. java自带工具-jps、jinfo、jstack、jstat、jmap

    掌握java自带的这些监控工具,有助与我们很好的分析问题和jvm性能调优秀.收集了些网上整理很好的文章. Java监控工具.调优.调试辅助函数 Java自带的GUI性能监控工具Jconsole以及Ji ...

  5. Spark的Straggler深入学习(1):如何在本地图形监控远程Spark的GC情况——使用java自带的jvisualvm

    一.本文的目的       Straggler是目前研究的热点,Spark中也存在Straggler的问题.GC问题是总所周知的导致Straggler的重要因素之一,为了了解GC导致的Straggle ...

  6. CSS 魔法系列:纯 CSS 绘制基本图形(圆、椭圆等)

    我们的网页因为 CSS 而呈现千变万化的风格.这一看似简单的样式语言在使用中非常灵活,只要你发挥创意就能实现很多比人想象不到的效果.特别是随着 CSS3 的广泛使用,更多新奇的 CSS 作品涌现出来. ...

  7. java自带BASE64工具进行图片和字符串转换

    java自带BASE64工具进行图片和字符串转换 import java.io.File; import java.io.FileInputStream; import java.io.FileOut ...

  8. Java自带的keytool命令

    使用Java自带的keytool命令,在命令行生成. 1.生成服务器端私钥kserver.keystore文件 keytool -genkey -alias serverkey -validity 1 ...

  9. java发送带附件的邮件

    /** * java发送带附件的邮件 * 周枫 * 2013.8.10 */ package com.dsideal.Util; import javax.mail.*; import javax.m ...

随机推荐

  1. 2018-10-25-weekly

    Algorithm 94. 二叉树的中序遍历 What 给定一个二叉树,返回它的中序遍历. How 二叉树的中序遍历顺序为左-根-右,可以用递归来解,对左子结点调用递归函数,根节点访问值,右子节点再调 ...

  2. 八个JS中你见过的类型。

    1.布尔类型 布尔值只能为  true 或者 false ,其他的会报错 let bool: boolean = false; bool = true; // bool = 123; // error ...

  3. CSS3 ::before和::after伪元素的实际应用

    实例 1.清除浮动 通常我们清除清除浮动的方式就是在浮动元素后面添加一个空的Div标签,然后在设置它的清除浮动要是,使用after伪元素,我们就不需要添加无意义的div标签在html中了,下面的例子就 ...

  4. kwargs - Key words arguments in python function

    This is a tutorial of how to use *args and **kwargs For defining the default value of arguments that ...

  5. with上下文管理协议

    with open('data.txt', 'r') as f: lines = f.readlines() for line in lines: print(line.split()) 类上面这段代 ...

  6. 转Oracle、MySql、SQLServer 数据分页查询

    最近简单的对oracle,mysql,sqlserver2005的数据分页查询作了研究,把各自的查询的语句贴出来供大家学习..... (一). mysql的分页查询 mysql的分页查询是最简单的,借 ...

  7. MySQL系统服务的安装删除

    1.从该地址http://dev.mysql.com/downloads/mysql/中选择windows的版本,选择下载. 2.将下载的压缩包解压. 3.将根目录下的my-default.ini复制 ...

  8. 李满春与WebGIS

    李满春 ,男,1964年6月生,博士,教授,博导.现任南京大学科技处处长.地理信息科学系主任(兼).地理信息系统与遥感研究所所长(兼).国际地球系统科学研究所(学科特区)常务副所长(兼).第六届高等学 ...

  9. 循序渐进实现仿QQ界面(二):贴图按钮的三态模拟

    开始之前先说一下RingSDK的编译问题,这里演示的程序需要用到最新版本的RingSDK,请务必用SVN到svn://svnhost.cn/RingSDK更新到最新版本,推荐用TortoiseSVN. ...

  10. RabbitMQ-Window安装(一)

    1.登录RabbitMq官网http://www.rabbitmq.com/ 2.点击Get Started 3.点击Download+Installation 4.找到Windows,点击 5.点击 ...