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. python基础--4 元祖

    #元组,元素不可被修改,不能被增加或者删除 #tuple,有序 tu=(11,22,33,44,55,33) #count 获取指定元素在元祖中出现的次数 print(tu.count(33)) #i ...

  2. rename 重命名文件

    1.  使用范例 范例1: 批量修改文件名 [root@localhost data]# touch {a,b,c,d,e}.txt [root@localhost data]# ls a.txt  ...

  3. openGL常用对象的创建及使用

    一.GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”.GPU(显卡核心芯片)是显示卡的“大脑”,它决定了该显卡的档次和大部分性能 二.使用背景 随着OpenGL状 ...

  4. 前端每日实战:32# 视频演示如何用纯 CSS 创作六边形按钮特效

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/xjoOeM 可交互视频教程 此视频 ...

  5. Java中的Overload和Override有什么区别

    Overload和Override的区别 1.Overload 定义 Overload是重载的意思.它是指我们可以定义一些名称相同的方法,通过定义不同的输入参数来区分这些方法,然后在调用时,虚拟机就会 ...

  6. MySQL数据库的自动备份与数据库被破坏后的恢复(2)

    测试自动备份正常运转与否(备份恢复的方法) 这里,以通过实际操作的过程来介绍问题出现后的恢复方法. [1] 当数据库被删除后的恢复方法 首先建立一个测试用的数据库. [root@CentOS ~]# ...

  7. jest操作 Elasticsearch

    package com.lgmall.search; import com.lgmall.search.esEntity.Article;import com.lgmall.search.esEnti ...

  8. Windows里服务中没有 MySQL

    1.以管理员身份启动命令提示符 2.安装并启动MySQL服务 C:\Windows\system32>mysqld.exe -installService successfully instal ...

  9. 批处理bat文件显示中文乱码解决方式

    1.下载Notepad++并安装 2.选择编码,将文件编码转换为ANSI编码

  10. 饿了么CTO张雪峰:允许90后的技术人员“浮躁“一点

    编者按:今年4月,饿了么正式加入了阿里新零售战队,进一步加速其在本地生活市场的扩张速度.在创业9年的时间中,饿了么在外卖领域经历了真正的“从0到1”,尤其是在外卖平台的技术升级方面,越过了一个又一个的 ...