java使用Graphics2D生成图片

UI图
请添加图片描述
实际图片数据库中只存了一个二维码转的base64的数组,直接导出只有一个二维码
这里使用 Graphics2D 画图

public static void main(String[] args) {
        // 假设你有一个Base64编码的字符串,它表示一张图片
        String base64ImageString = "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";
        String logoImage = "iVBORw0KGgoAAAANSUhEUgAAAHi0VE8bfIZ2DdP2d3+";

        // 移除Base64的头部信息(如果有的话,例如"data:image/png;base64,")测试数据没有前缀 可以删除
        base64ImageString = base64ImageString.replaceFirst("data:image/(png|jpeg|jpg);base64,", "");
        logoImage = logoImage.replaceFirst("data:image/(png|jpeg|jpg);base64,", "");

        // 解码Base64字符串为字节数组
        byte[] imageBytes = java.util.Base64.getDecoder().decode(base64ImageString);
        byte[] logoBytes = java.util.Base64.getDecoder().decode(logoImage);

        try (ByteArrayInputStream bis = new ByteArrayInputStream(imageBytes)) {
            // 将字节数组转换为BufferedImage
            BufferedImage overlayImage = ImageIO.read(bis);

            ByteArrayInputStream logoBis = new ByteArrayInputStream(logoBytes);
            BufferedImage logoBufferImage = ImageIO.read(logoBis);

            // 加载或创建一个背景图片(这里我们创建一个新的)
            BufferedImage backgroundImage = new BufferedImage(406, 574, BufferedImage.TYPE_INT_RGB);
            Graphics2D g2d = backgroundImage.createGraphics();

            // 填充背景图片为某种颜色(可选)
            g2d.setColor(Color.WHITE);
            g2d.fillRect(0, 0, backgroundImage.getWidth(), backgroundImage.getHeight());

            // 设置字体和样式
            Font font = new Font("Microsoft YaHei", Font.BOLD, 24); // 使用你想要的字体、样式和大小
            g2d.setFont(font);
            // 设置文本内容
            String text = "御湖社区一体化管理平台";
            // 获取文本的宽度和高度
            FontRenderContext frc = g2d.getFontRenderContext();
            Rectangle2D textBounds = font.getStringBounds(text, frc).getBounds2D();
            // 在图片上绘制文本
            int centerX = (backgroundImage.getWidth() - (int) textBounds.getWidth()) / 2;
            g2d.setColor(Color.BLACK);
            g2d.drawString(text, centerX, 106);
            Font font1 = new Font("Microsoft YaHei", Font.PLAIN, 14); // 使用你想要的字体、样式和大小
            g2d.setFont(font1);
            g2d.drawString("巡检点位1", 150, 466);

            // 获取FontMetrics以计算文本宽度
            FontMetrics fm = g2d.getFontMetrics(font);
            // 设置每行的最大宽度
            int maxWidth = 320;
            String text1 = "楼梯转角入口处楼梯转角入口处楼梯转角入口处";
            StringBuilder sb = new StringBuilder();

            // 绘制文本的起始位置 自动换行
            int x = 150;
            int y = 502;
            for (int i = 0; i < text1.length(); i++) {
                char c = text1.charAt(i);
                String temp = sb.append(c).toString();

                // 计算当前行的文本宽度
                Rectangle2D bounds = font.getStringBounds(temp, g2d.getFontRenderContext());
                double width = bounds.getWidth();

                // 如果当前行的文本宽度超过了最大宽度,则绘制当前行并开始新的一行
                if (width > maxWidth) {
                    // 回退一个字符(因为当前字符导致了换行)
                    sb.setLength(sb.length() - 1);

                    // 绘制当前行的文本
                    g2d.drawString(sb.toString(), x, y);

                    // 更新y坐标以开始新的一行
                    y += fm.getHeight();

                    // 重置StringBuilder以存储下一行的文本
                    sb.setLength(0);
                    sb.append(c);
                }

                // 如果当前字符是换行符,则直接绘制并开始新的一行
                if (c == '\n') {
                    g2d.drawString(sb.toString(), x, y);
                    y += fm.getHeight();
                    sb.setLength(0);
                }
            }

            // 绘制最后一行文本(如果有剩余的话)
            if (sb.length() > 0) {
                g2d.drawString(sb.toString(), x, y);
            }


            // 在背景图片上绘制Base64解码后的图片(例如,作为水印)
            // 你可以调整x和y坐标、alpha透明度等来达到你想要的效果
            int x1 = (backgroundImage.getWidth() - overlayImage.getWidth()) / 2;
            int y1 = (backgroundImage.getHeight() - overlayImage.getHeight()) / 2;
            g2d.drawImage(overlayImage, x1, y1, null);
            g2d.drawImage(logoBufferImage, 17, 20, null);

            g2d.setColor(Color.GRAY);
            g2d.drawString("点位名称:", 71, 466);
            g2d.drawString("位置描述:", 71, 502);

            // 释放Graphics2D资源
            g2d.dispose();

            // 指定导出位置,例如 "D:/path/to/output/image.png"
            String exportPath = "D:/path/to/output/image.png";
            File outputFile = new File(exportPath);

            // 将合并后的图片写入文件
            ImageIO.write(backgroundImage, "png", outputFile);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

导出效果
请添加图片描述
logo的数组我删了一部分,二维码的可以直接用

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ的Fanout交换机

Fanout交换机 Fanout&#xff0c;英文翻译是扇出&#xff0c;我觉得在MQ中叫广播更合适。 在广播模式下&#xff0c;消息发送流程是这样的&#xff1a; 1&#xff09; 可以有多个队列2&#xff09; 每个队列都要绑定到Exchange&#xff08;交换机&#xff09;3&#xff09; …

秋招Java后端开发冲刺——非关系型数据库篇(Redis)

一、非关系型数据库 1. 主要针对的是键值、文档以及图形类型数据存储。 2. 特点&#xff1a; 特点说明灵活的数据模型支持多种数据模型&#xff08;文档、键值、列族、图&#xff09;&#xff0c;无需预定义固定的表结构&#xff0c;能够处理各种类型的数据。高扩展性设计为水…

8.计算机视觉—增广和迁移

目录 1.数据增广数据增强数据增强的操作代码实现2.微调 迁移学习 Transfer learning(重要的技术)网络结构微调:当目标数据集比源数据集小得多时,微调有助于提高模型的泛化能力。训练固定一些层总结代码实现1.数据增广 CES上的真实故事 有一家做智能售货机的公司,发现他们…

如何实现灌区闸门控制自动化?宏电“灌区哨兵”为灌区闸门控制添“智慧”动能

闸门控制站是节水灌溉工程中的重要组成部分。随着科技的不断进步和农田水利现代化的发展&#xff0c;传统的闸门控制和管理手段已经不能满足现代农业的发展要求。以宏电“灌区哨兵”为核心的闸门自动化控制系统&#xff0c;能有效解决灌区闸门距离远、数量多、不易操作、不好监…

Java操作Word文档

文章目录 Java操作Word文档引言1、技术选型结论 2、基础文本填充2.1 引入依赖2.1.1. poi2.1.2. poi-ooxml2.1.3. poi-ooxml-schemas 总结2.2 业务思路2.3 业务层 OfficeService2.4 通用工具类 OfficeUtils2.5 控制层 OfficeController 3、表格3.1 准备模板3.2 业务层 OfficeSer…

激光雷达数据处理与典型案例分析实践技术应用

激光雷达技术以其高精度、高效率的特点&#xff0c;已经成为地表特征获取、地形建模、环境监测等领域的重要工具。掌握激光雷达数据处理技能&#xff0c;不仅可以提升工作效率&#xff0c;还能够有效提高数据的质量和准确性&#xff0c;为决策提供可靠的数据支持。 随着激光雷…

烟火监测报警摄像机

当今社会&#xff0c;随着城市化进程的加快和人们生活水平的提高&#xff0c;烟火监测报警摄像机作为一种新型智能安防设备&#xff0c;正逐步在各个领域得到广泛应用&#xff0c;其在保障公共安全和预防火灾中的作用日益凸显。烟火监测报警摄像机利用先进的视觉识别技术和智能…

电脑怎么更改网络ip地址?四招助你轻松搞定

在数字化时代的浪潮中&#xff0c;电脑已成为我们日常生活和工作中不可或缺的工具。然而&#xff0c;随着网络技术的飞速发展&#xff0c;网络安全问题也日益凸显。为了保护个人隐私和网络安全&#xff0c;我们有时需要更改电脑的IP地址。本文将详细介绍如何轻松更改电脑的网络…

[Ant Design Vue 树控件Tree]内存溢出报错

使用ant design vue控件时发现报错&#xff0c;但是数据展示时没有问题的&#xff1b; 具体报错信息&#xff1a;Maximum call stack size exceeded 经排查&#xff0c;是我的目录下数据过多&#xff0c;差不多有小一万的数据&#xff1b; 查看官方文档&#xff0c;使用虚拟滚…

win11 下载 Chromium 源码并编译

环境准备&#xff1a; win11操作系统 16G内存 100G硬盘 能够翻墙的代理 python 3.9.x 本文只是列举主要过程&#xff0c;具体细节自己去研究。 1.安装vs2022 自行百度下载安装&#xff0c;注意win11要安装2022&#xff0c;不要安装2019 2.下载安装depot_tools 自行百…

机器学习Python代码实战(二)分类算法:k-最近邻

一.k-最近邻算法步骤 1.选择适当的k值。它表示在预测新的数据点时要考虑的邻居数量。 2.计算距离。计算未知点与其他所有点之间的距离。常用的距离计算方法主要有欧氏距离&#xff0c;曼哈顿距离等。 3.选择邻居。在训练集中选择与要预测的数据点距离最近的k个邻居。 4.预测…

当大模型开始「考上」一本

参加 2024 河南高考&#xff0c;豆包和文心 4.0 过了一本线&#xff0c;但比 GPT-4o 还差点。 今天的大模型&#xff0c;智力水平到底如何&#xff1f; 2024 年高考陆续出分&#xff0c;我们想要解开这个过去一年普罗大众一直争论不休的话题。高考是衡量人类智力和学识水平的…

【数据建模】微分方程与动力系统

文章目录 微分方程与动力系统1. 微分方程的理论基础1.1 函数、导数与微分1.2 一阶线性微分方程的解1.3 二阶常系数线性微分方程的解 2. 使用python求解微分方程2.1 求解微分2.2 求解定积分2.2.1 quad函数求解2.2.2 梯型法则求解 3. 使用Scipy和Sympy解微分方程3.1 使用sympy求解…

记录一个80端口被占用导致软件打不开的问题

今天有个电脑&#xff0c;安装完我们的软件后&#xff0c;在浏览器上面打不开。但是我看虚拟机里面的配置啥的都很正常&#xff0c;我感觉不是软件挂了&#xff0c;应该是系统哪里的配置出了问题&#xff0c;导致软件打不开。 跟做软件的联系了&#xff0c;他让我直接访问虚拟机…

酷开系统丨开启家庭智能教育让学习成为一种乐趣

在数字化时代&#xff0c;孩子们接触的信息日益增多&#xff0c;而酷开系统洞察到了家长对孩子成长环境的关切。酷开系统&#xff0c;作为家庭娱乐与教育的融合平台&#xff0c;不仅注重提供丰富的教育资源&#xff0c;更致力于创造一个健康、有益的学习和娱乐环境。 在酷开系…

OPenFast软件中的NRELOffshrBsline5MW_Onshore_ServoDyn.dat文件详解

我先简单概括一下&#xff0c;后续我再详细总结&#xff1a;文件“NRELOffshrBsline5MW_Onshore_ServoDyn.dat”是用于NREL 5.0 MW基准风力发电机的ServoDyn模块的输入文件。它定义了仿真控制、变桨控制、发电机和扭矩控制、偏航控制以及输出设置等各种参数。以下是主要内容的总…

Uniapp的使用

为什么要使用uniapp uniapp 可以进行多端开发&#xff0c;uniapp 在设计的时候就拥有许多兼容性代码&#xff0c;可以兼容很多的平台 如 支付宝小程序 html页面 微信小程序等&#xff0c;注重开发效率而不是运行效率时 &#xff0c;就可以考虑一下 uniapp 当然也可以去…

mysql窗口函数选择每个窗口的第一条数据

需求 假设我们有一个名为sales的表&#xff0c;我们想要按product分组&#xff0c;并为每个产品选择销售额最高的那一天 sales表 首先给每个产品按照销售量进行排名 SELECT product,sale_date,sales_amount,ROW_NUMBER() OVER (PARTITION BY product ORDER BY sales_amount …

Langchain-Chatchat 搭建知识库教程,老奶奶都能看懂的教程

本文将在 google 实验室中使用 Langchain-Chatchat 搭建一个知识库&#xff0c;还可以进行聊天等功能。 由于是在 google 实验室上面跑代码&#xff0c;所以本地电脑什么配置都无所谓&#xff01; 效果图 运行起来后可以上传各种文档文件到知识库。 Langchain-Chatchat 是什…

sheng的学习笔记-hadoop,MapReduce,yarn,hdfs框架原理

目录 搭建hadoop 下载hadoop JAVA 下载bin windows 改环境变量 将winutils.exe和hadoop.dll放到C:\Windows\System32下&#xff0c;然后重启 修改配置 vim core-site.xml vim hdfs-site.xml hadoop-env.sh mapred-site.xml yarn-site.xml 格式化命令 启动集群 …