java 自定义收款二维码,使用图片融合,自定义文字

1, 输出

原图资源 : 下载原图, CSDN 下载, 无需积分在这里插入图片描述

模版
底图 768 x 1299
在这里插入图片描述
二维码 527*527
在这里插入图片描述

2 代码


import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.font.FontRenderContext;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class 图片合并 {

    public static void main(String[] args) {
        try {
            // 读取底图和二维码图片
            BufferedImage background = ImageIO.read(new File("D:\\tmp\\wechatpay.png"));
            BufferedImage qrCode = ImageIO.read(new File("D:\\tmp\\recode.png"));

            // 设置二维码图片的位置(x, y)
            int x = 121;
            int y = 446;

            // 在底图上绘制二维码图片
            background.getGraphics().drawImage(qrCode, x, y, null);

            // 设置文字内容和位置
            {
                String text = "长沙吴彦祖物业公司";
                Font font = new Font("Microsoft YaHei", Font.BOLD, 36);
                Color color = Color.WHITE;
                int textX = (int) ((background.getWidth() - font.getStringBounds(text, new FontRenderContext(null, true, false)).getWidth()) / 2);
                int textY = 310;

                // 在底图上添加文字
                Graphics2D g2d = background.createGraphics();
                g2d.setFont(font);
                g2d.setColor(color);
                g2d.drawString(text, textX, textY);
                g2d.dispose();
            }
            {
                String text = "ID : 123";
                Font font = new Font("Microsoft YaHei", Font.PLAIN, 36);
                Color color = Color.WHITE;
                int textX = (int) ((background.getWidth() - font.getStringBounds(text, new FontRenderContext(null, true, false)).getWidth()) / 2);
                int textY = 385;

                // 在底图上添加文字
                Graphics2D g2d = background.createGraphics();
                g2d.setFont(font);
                g2d.setColor(color);
                g2d.drawString(text, textX, textY);
                g2d.dispose();
            }
            {
                String text = "> 麓谷企业广场";
                Font font = new Font("Microsoft YaHei", Font.PLAIN, 36);
                Color color = Color.WHITE;
                int textX = (int) ((background.getWidth() - font.getStringBounds(text, new FontRenderContext(null, true, false)).getWidth()) / 2);
                int textY = 446 + 527 + 125;

                // 在底图上添加文字
                Graphics2D g2d = background.createGraphics();
                g2d.setFont(font);
                g2d.setColor(color);
                g2d.drawString(text, textX, textY);
                g2d.dispose();
            }

            // 保存合成后的图片
            ImageIO.write(background, "jpg", new File("D:\\tmp\\output.jpg"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


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

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

相关文章

基于STC12C5A60S2系列1T 8051单片机的SPI总线器件数模芯片TLC5615实现数模转换应用

基于STC12C5A60S2系列1T 8051单片的SPI总线器件数模芯片TLC5615实现数模转换应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍SPI总线器件数模芯片TLC5615介绍通过按…

第十五届全国大学生数学竞赛初赛试卷解析

参加了此次比赛,收获很多,两个半小时让我体会到了很多,所以想做个总结 第十五届全国大学生数学竞赛初赛试题 (非数学A类,2023年) 下面是答案解析,有兴趣的小伙伴可以做完对照一下。 直接使用洛必…

ClassLoader

Java /Android 默认ClassLoader是PathClassLoader Android 的 PathClassLoader 和DexClassLoader 都是BaseDexClassLoader的子类 BaseClassLoader是ClassLoader的子类,通过loadClass方法加载,Android将Java的ClassLoader简化了,第二个参数arg2 无效 loadClass 通过 findLoad…

050-第三代软件开发-软件部署脚本(二)

第三代软件开发-软件部署脚本(二) 文章目录 第三代软件开发-软件部署脚本(二)项目介绍软件部署脚本(二) 关键字: Qt、 Qml、 bash、 shell、 脚本 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QML(Qt Meta-Object Languag…

C语言从入门到精通之【基本运算符】

赋值运算符 在C语言中,并不意味着“相等”,而是一个赋值运算符。下面的赋值表达式语句: bmw 2002; 把值2002赋给变量bmw。也就是说,号左侧是一个变量名,右侧是赋给该变量的值。符号被称为赋值运算符。另外&#xff0…

用友GRP-U8 ReturnForWcp RCE漏洞复现

0x01 产品简介 用友GRP-U8内控管理软件是用友公司专注于国家电子政务事业,基于云计算技术所推出的新一代产品,是我国行政事业财务领域最专业的政府财务管理软件。 0x02 漏洞概述 用友GRP-U8内控管理软件/servlet/PayReturnForWcp接口处存在xxe漏洞,攻击者可利用xxe…

Redis配置、Redis类型

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…

sklearn笔记:neighbors.NearestNeighbors

1 最近邻 class sklearn.neighbors.NearestNeighbors(*, n_neighbors5, radius1.0, algorithmauto, leaf_size30, metricminkowski, p2, metric_paramsNone, n_jobsNone)邻居搜索算法的选择通过关键字 algorithm 控制,它必须是 [auto, ball_tree, kd_tree, brute] …

图像格式导致halcon读取失败

图像格式: JPEG (jpg),文件头:FF D8 FF PNG (png),文件头:89 50 4E 47 GIF (gif),文件头:47 49 46 38 Windows Bitmap (bmp),文件头:42 4D 打开软件“notepad”使用16进…

《洛谷深入浅出基础篇》P1551亲戚——集合——并查集P1551亲戚

上链接:P1551 亲戚 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P1551 上题干: 题目背景 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图…

用Postman发送xml数据

启动Postman: 点击左上角的“New”,在弹出窗中选择HTTP: 选择POST方法: 点击Body: 选择raw: 在右侧的下拉列表中选择XML: 在下面的输入框中输入或者从其它地方拷贝XML文本:…

软件测试之接口测试面试题

1、接口的定义 系统与系统之间、组件与组件之间、数据传递交换的通道 2、接口的类型 按协议:http、tcp、ip 按语言:C、java、php 按范围:系统与系统、内部系统与内部系统、外部系统与外部系统之间 程序划分:多个内部程序、内…

QML20、布局

1.概述 首先,QML同样允许大家使用硬编码的方式将位置数值直接写到代码中,但是这样做首先难以适应UI的调整,其次代码维护起来也很困难。因此不推荐这样做。推荐大家使用的是以下三种布局管理器:Row,、Column、Grid、Flow,以及使用Anchor进行布局。 2.Row QML 中的 Row 元素…

js-webApi笔记1

目录 前言 Web API的概念 什么是DOM DOM树 1、查找元素 2、其他查找元素方法 3、操作元素 4、操作元素属性 5、 操作元素样式 style 6、操作自定义属性 7、 操作表单元素属性 8、事件 9、事件绑定 10、常用鼠标事件 11、定时器 12、定时器案例 前言 Web API的概念…

最长上升子序列模型 笔记

首先附上模板&#xff1a; #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl \nusing namespace std;typedef pair<int, int> PII; typedef long long ll;const int N 100010;int n; int a[N], q[N];int main()…

Linux脚本shell中将Windos格式字符转换为unix

众所周知&#xff0c;windos的文档直接复制到linux服务器上去&#xff0c;是需要进行格式转换的&#xff0c;否则可能出现以下报错&#xff1a; 解决方法&#xff1a; vim 脚本 输入 :set ff ##会显示字符格式 :set ffunix ##转换为unix格式 :wq ##保存退出

Word添加附件(附件图标被挡住的问题)

本文主要是为了记录一下自己使用word添加附件的时候遇到的一个坑&#xff0c;就是添加了附件&#xff0c;附件图标没有展示的问题。 选择 插入——对象&#xff0c;然后点击由文件创建然后再点击浏览本地电脑中的文件&#xff0c;选择需要添加的文件&#xff0c;当然也可以选择…

2019年五一杯数学建模B题木板最优切割方案解题全过程文档及程序

2019年五一杯数学建模 B题 木板最优切割方案 原题再现 徐州某家具厂新进一批木板如表 1 所示&#xff0c;在家具加工的过程中&#xff0c;需要使用切割工具生产表 2所示的产品。假设&#xff1a;木板厚度和割缝宽度忽略不计。   请为该家具厂给出如下问题的木板最优切割方…

解决k8s通过traefik暴露域名失败并报错:Connection Refused的问题

我敢说本篇文章是网上为数不多的解决traefik暴露域名失败问题的正确文章。 我看了网上太多讲述traefik夸夸其谈的文章了&#xff0c;包含一大堆复制粘贴的水文和还有什么所谓“阿里技术专家”的文章&#xff0c;讲的全都是错的&#xff01;基本没有一个能说到点子上去&#xf…

如何在3DMax中使用超过16个材质ID通道?

3DMAX效果通道扩展插件EffectsChannelEx教程 3DMax的材质ID通道允许我们生成渲染元素&#xff0c;这些元素可用于在合成或其他软件中产生处理或特殊效果。如对渲染或动画进行颜色校正。你可以在Photoshop中为你的静态3D渲染图像做这件事。或者使用After Effects、Blackmagic Fu…