JAVA-字符串生成图片

直接上代码

public static void main(String[] args) throws IOException {createFontImage("红色", new Font("宋体", Font.BOLD, 50), 400, 400);}/*** 根据str,font的样式将文字变成图片,然后返回一个流** @param str    字符串* @param font   字体* @param width  宽度* @param height 高度*/public static ByteArrayOutputStream createFontImage(String str, Font font, Integer width, Integer height) throws IOException {ByteArrayOutputStream os = new ByteArrayOutputStream();// 创建图片BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);Graphics g = image.getGraphics();g.setClip(0, 0, width, height);g.setColor(Color.white);//先用白色填充整张图片,也就是背景g.fillRect(0, 0, width, height);g.setColor(Color.black); //在换成黑色FontDesignMetrics metrics = FontDesignMetrics.getMetrics(font);// 设置画笔字体g.setFont(font);int strWidth = metrics.stringWidth(str);int strHeight = metrics.getHeight();int top = (height - strHeight) / 2 + metrics.getAscent();//可以上下居中int left = (width - strWidth) / 2; //左边位置,这样可以左右居中g.drawString(str, left, top); // 画出字符串,g.dispose();//将图片输出到ByteArrayOutputStream中try {ImageIO.write(image, "png", os);org.apache.commons.io.FileUtils.writeByteArrayToFile(new File("E:\\temp\\a.png"), os.toByteArray());} catch (IOException e) {System.out.printf("IOException:%s", e);os.close();//StreamClose.close(os);//出了异常则在内部关闭流,StreamClose是我自己写的关闭流的工具}return os;}

 OK,直接搞定,如果是要返回图片或者存储图片,直接取就行

byte[] imgByte = os.toByteArray();
String img = FileUtils.base64EncodeString(imgByte);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/11265.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv5多模型推理,同时实现多个任务数据集识别。

YOLOv5-6.0多模型推理,同时实现多个任务数据集识别。 ↓下滑可见代码↓ YOLOv5-6.0多模型推理,同时实现多个任务数据集识别。 ↓下滑可见代码↓ YOLOv5-6.0多模型推理,同时实现多个任务数据集识别。 ↓下滑可见代码↓ YOLOv5-6.0多模型推理,同时实现多个任务数据集识别。 ↓…

高阶k8s二次开发教程 -- 通过阅读Istio源码习得

本篇文章全网几乎找不到,在做深层次的k8s二次开发时非常管用。那就是使用Client-go去访问自定义CRD资源。 我们先使用kubebuilder生成一个CRD,论生成CRD这些,还是kubebuilder更加方便。 创建CRD apiVersion: "apiextensions.k8s.io/v…

了解Unity编辑器 之组件篇Effects(十一)

一、Halo:是一个可用于游戏对象的特效组件,它可以在对象周围添加一个光晕效果 Color属性: 用于设置Halo的颜色。你可以通过选择颜色面板中的颜色来指定光晕的外观。选择适当的颜色可以使光晕与游戏场景中的其他元素相匹配或突出显示。 Size属性: 用于设…

[SQL挖掘机] - 视图介绍

介绍: 视图(View)是数据库中的一种虚拟表格,它是基于一个或多个实际表格(或其他视图)的查询结果集合。与实际表格不同,视图不包含实际存储的数据,而是根据定义在其之上的查询语句来动态生成数据…

LeetCode|backtracking|review:40. 131. 93. 47. 332. | 37. Sudoku Solver

复习: 40. Combination Sum II [1,1,2,3]中,答案里有[1,1,2], 但是不能有两个[1,2,3] 131. Palindrome Partitioning 每个for都是在给定的start之后找一个palindrome。当start 93. Restore IP Addresses forloop每次loop都是在给定的start的后三个数…

javascript 模板引擎

使用场景 在实际开发中,一般都是使用动态请求数据来更新页面,服务器端通常返回json格式的数据,正常操作是我们手动的去拼装HTML,但麻烦且容易出错,因此出现了一些用模版生成HTML的的框架叫js模板引擎如:jq…

Sugar BI : AI 问答,即问即答

AI 探索功能提供给所有用户自由探索和分析数据模型的能力。在 AI 探索页中,有授权的用户可以通过 AI 问答和字段拖拽两种方式对数据模型进行探索。 下面,我们将为大家详细指导如何使用 AI 探索 新建 AI 探索页 空间管理员可以在报表管理中新建「AI 探索…

Docker 容器基础操作

Docker容器基础操作 容器(container)是Docker镜像的运行实例,类似于可执行文件与进程的关系,Docker是容器引擎,相当于系统平台。 容器的生命周期 容器的基础操作(以 tomcat8.0 为例) # 拉取tomcat8.0镜像 [root@tudou tudou]# docker pull tomcat:8.0 8.0: Pulling f…

紫光FPGA试用--软件篇

目录 一 软件安装启动 二 如何打开IP核?查看/修改现有IP核参数? 三 如何定义引脚? 四 如何下载code进入FPGA? 1. 下载到FPGA芯片内: 2.下载到外部FLASH中 五 如何进入在线调试模式,调试步骤 操作步骤&#xff…

智慧园区楼宇合集:数字孪生管控系统

智慧园区是指将物联网、大数据、人工智能等技术应用于传统建筑和基础设施,以实现对园区的全面监控、管理和服务的一种建筑形态。通过将园区内设备、设施和系统联网,实现数据的传输、共享和响应,提高园区的管理效率和运营效益,为居…

学习笔记|大模型优质Prompt开发与应用课(二)|第五节:只需3步,优质Prompt秒变应用软件

原作者:依依│百度飞桨产品经理 一乔│飞桨开发者技术专家 分享内容 01:大模型应用简介 02:LLM应用开发范式 03: Al Studio大模型社区 04:AI对话类应用开发技巧 大模型技术爆发,各类应用产品涌现 文心产业级知识增强大模型 工作中的“超级助手”—…

兵兵数码:网络机顶盒哪个好?2023最新网络机顶盒排名

网络机顶盒让电视机重生,解决卡顿、资源少、广告多等问题,我们每年都会进行网络机顶盒测评,今年已经测评过17款,通过多角度对比筛选了五款表现最佳的产品整理成网络机顶盒排名,近期想买网络机顶盒不知道网络机顶盒哪个…

Java lamda对List<JSONObject>里多个动态属性字段进行动态的降序或者升序

最近做到一个需求&#xff0c;需要把业务侧返回的数据&#xff08;格式为List<JSONObject>&#xff09;,然后根据前端传来的排序字段、以及升降序属性来排序并返回给前端。要对List<JSONObject>中的多个属性字段进行动态的升序或降序排序&#xff0c;我们可以根据需…

7.28黄金还会继续下跌吗?收官多空如何布局

近期有哪些消息面影响黄金走势&#xff1f;黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a; 周五&#xff08;7月28日&#xff09;亚洲时段&#xff0c;现货黄金震荡微涨&#xff0c;目前交投于1952.94附近&#xff0c;隔夜金价大跌后&#xff0c;吸引了一些逢低…

【深入了解pytorch】PyTorch循环神经网络(RNN)

【深入了解pytorch】PyTorch循环神经网络(RNN) PyTorch循环神经网络(RNN):概念、工作原理与常见变体循环神经网络概念和工作原理RNN的结构RNN的工作原理LSTM(长短期记忆网络)LSTM的结构LSTM的工作原理GRU(门控循环单元)GRU的结构GRU的工作原理在PyTorch中实现RNN、LST…

HTML 速查列表

HTML 速查列表 HTML 速查列表. 你可以打印它&#xff0c;以备日常使用。 HTML 基本文档 <!DOCTYPE html> <html> <head> <title>文档标题</title> </head> <body> 可见文本... </body> </html> 基本标签&#xff08;Ba…

使用python将PDF转word

实现功能&#xff0c;将程序所在当前路径下的所有PDF文件转化为word import os from pdf2docx import Converter# 获取当前路径 current_path os.getcwd()# 遍历当前路径下的所有文件和文件夹 for file_name in os.listdir(current_path):# 检查文件是否为 PDF 文件if file_n…

[SQL挖掘机] - 全连接: full join

介绍: 在sql中&#xff0c;join是将多个表中的数据按照一定条件进行关联的操作。全连接&#xff08;full join&#xff09;是一种连接类型&#xff0c;它会返回所有满足连接条件的行&#xff0c;同时还包括那些在左表和右表中没有匹配行的数据。 在进行全连接时&#xff0c;会…

Kotlin Multiplatform 使用测试单元

编写常见的测试代码 现在您有了一个基于字符串的 API&#xff0c;可以通过它进行基本的测试。 1、在公共的测试模块中创建一个 org.jetbrains.base64 包 2、在新包下面创建 Base64Test.kt文件 3、在文件中添加代码 package org.jetbrains.base64import com.example.myapplicat…

医学案例|配对wilcoxon符号秩检验

一、案例介绍 某单位想要研究某保健品对小鼠是否具有抗疲劳作用&#xff0c;将同种属的小鼠按性别与年龄相同、体重相近配成对子&#xff0c;共14对&#xff0c;并将每对中的两只小鼠随机分配到两个不同的保健食品剂量组&#xff0c;测量小鼠负重5&#xff05;体重时的游泳时间…