Python 将文字和二维码 生成到BMP上 可以做标签打印等

直接上代码吧,都有注释,看得明白

将代码复制到main.py文件中,就可以调试了

from PIL import Image, ImageDraw, ImageFont
import matplotlib.font_manager as fm
from matplotlib.font_manager import FontProperties
import os
import qrcodedef main():print("Hello, World!")font_size = 14# 设置字体(假设你已经安装了文泉驿字体)font_name = "文泉驿"  #将系统的所有字体查询出来fonts = fm.findSystemFonts(fontpaths=None, fontext='ttf')#print(fonts)matching_fonts = [f for f in fonts if font_name in f]; fontPath=matching_fonts[0];  #这里我取第一个字体,如果需要筛选可以循环处理# 测试这些字体是否支持中文字符# for fp in matching_fonts:#     font_prop = FontProperties(fname=fp)#     try:#         text = "测试中文字符"#         if any(ord(char) > 127 for char in text):  # 检查是否有非ASCII字符#             print(f"{fp} 支持中文字符")#         else:#             print(f"{fp} 不支持中文字符")#     except Exception as e:#         print(f"无法加载字体 {fp}: {e}")#获取支持中文的字体  Linux默认字体下不支持中文,会打印乱码font = ImageFont.truetype(fontPath,font_size) # 创建一个空白图像 背景白色width, height = 350, 280image = Image.new('RGB', (width, height), 'white')# 获取绘图对象draw = ImageDraw.Draw(image)# 绘制文本信息  draw.text(xy=(10, 10), text=f"品牌:纳里腾", fill='black', font=font,kwargs={"font_size":font_size})draw.text(xy=(10, 50), text=f"第一代豆浆原液美容产品", fill='black', font=font,kwargs={"font_size":font_size})draw.text(xy=(10, 80), text=f"村头老陈", fill='black', font=font,kwargs={"font_size":font_size})# 生成二维码qr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_L,box_size=2,border=1,)#填充二维码内容qr.add_data('品牌:纳里腾\r\n')qr.add_data('第一代豆浆原液美容产品\r\n')qr.add_data('村头老陈\r\n')qr.make(fit=True)# 创建二维码图像img = qr.make_image(fill='black', back_color='white')# 将二维码转换为Pillow图像对象img = img.convert("RGBA")# 将二维码粘贴到背景图像上 定位坐标image.paste(img, (250, 150))# 可以保存到文件image.save("123.bmp")if __name__ == "__main__":main()

扩展阅读:Python 生成BMP图像,并转成Base64 和 16进制数组_python将bmp格式转换成16进制数据-CSDN博客

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

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

相关文章

“大数据+职业本科”:VR虚拟仿真实训室的发展前景

在新时代背景下,随着科技的飞速进步和产业结构的不断升级,职业教育正迎来前所未有的变革。“大数据职业本科”的新型教育模式,结合VR(虚拟现实)技术的广泛应用,为实训教学开辟了崭新的道路,尤其…

【异常解决】生产环境 net :: ERR_INCOMPLETE_CHUNKED_ENCODING的问题修复

博主介绍:✌全网粉丝22W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…

矩阵运算提速——玩转opencv::Mat

介绍:用Eigen或opencv::Mat进行矩阵的运算&#xff0c;比用cpp的vector或vector进行矩阵运算要快吗? 使用 Eigen 或 OpenCV 的 cv::Mat 进行矩阵运算通常比使用 std::vector<int> 或 std::vector<double> 更快。这主要有以下几个原因&#xff1a; 优化的底层实现…

mac m2 安装 docker

文章目录 安装1.下载安装包2.在downloads中打开3.在启动台打开打开终端验证 修改国内镜像地址小结 安装 1.下载安装包 到官网下载适配的安装包&#xff1a;https://www.docker.com/products/docker-desktop/ 2.在downloads中打开 拖过去 3.在启动台打开 选择推荐设置 …

redis的集群模式与ELK基础

一、redis的集群模式 1.主从复制 &#xff08;1&#xff09;概述 主从模式&#xff1a;这是redis高可用的基础&#xff0c;哨兵和集群都是建立在此基础之上。 主从模式和数据库的主从模式是一样的&#xff0c;主负责写入&#xff0c;然后把写入的数据同步到从服务器&#xff…

建立一个Macos载入image的实例含界面

前言 为了方便ios程序的开发&#xff0c;有时候需要先用的Macos平台进行一些功能性的程序开发。 作为对比和参考。 1、创建一个MacOS的App 2、主界面控件的增加 添加的控件方法与ios相同&#xff0c;也是再用commandshiftL&#xff08;CtrlShiftL&#xff09;,就会弹出控件…

《机器学习》从入门到实战——逻辑回归

目录 一、简介 二、逻辑回归的原理 1、线性回归部分 2、逻辑函数&#xff08;Sigmoid函数&#xff09; 3、分类决策 4、转换为概率的形式使用似然函数求解 5、对数似然函数 ​编辑 6、转换为梯度下降任务 三、逻辑回归拓展知识 1、数据标准化 &#xff08;1&#xf…

实践:事件循环

实践&#xff1a;事件循环 代码示例 console.log(1); setTimeout(() > console.log(2), 0); Promise.resolve(3).then(res > console.log(res)); console.log(4);上述的代码的输出结果是什么 1和4肯定优先输出&#xff0c;因为他们会立即方式堆栈的执行上下文中执行&am…

【机器学习】工业 4.0 下机器学习如何驱动智能制造升级

我的个人主页 我的领域&#xff1a;人工智能篇&#xff0c;希望能帮助到大家&#xff01;&#xff01;&#xff01;&#x1f44d;点赞 收藏❤ 随着科技的飞速发展&#xff0c;工业 4.0 浪潮正席卷全球制造业&#xff0c;而机器学习作为这一变革中的关键技术&#xff0c;正以前…

自从学会Git,感觉打开了一扇新大门

“同事让我用 Git 提交代码&#xff0c;我居然直接把项目文件压缩发过去了……”相信很多初学者都经历过类似的窘境。而当你真正掌握 Git 时&#xff0c;才会发现它就像一本魔法书&#xff0c;轻松解决代码管理的种种难题。 为什么 Git 能成为程序员的标配工具&#xff1f;它究…

Mono里运行C#脚本21—mono_image_init_name_cache

前面分析了怎么样加载mscorlib.dll文件,然后把文件数据读取到内存。 接着下来,就会遇到加载整个C#的类型系统,比如System. Object,大体类型如下图所示: 在对CIL编译之前,需要把这些类型全部加载到内存里,以便快捷地访问它们。 mono_image_init_name_cache函数就是完成…

【Triton-ONNX】如何使用 ONNX 模型服务与 Triton 通信执行推理任务上-Triton快速开始

模型部署系列文章 前置-docker 理解:【 0 基础 Docker 极速入门】镜像、容器、常用命令总结前置-http/gRPC 的理解: 【HTTP和gRPC的区别】协议类型/传输效率 /性能等对比【保姆级教程附代码】Pytorch (.pth) 到 TensorRT (.plan) 模型转化全流程【保姆级教程附代码(二)】Pytor…

win32汇编环境,对话框中显示bmp图像文件

;运行效果 ;win32汇编环境&#xff0c;对话框中显示bmp图像文件 ;显示的是一张尺寸267*400的bmp位图,及一张缩小为原来三分之一的位图 ;将代码复制进radasm软件里&#xff0c;直接编译就可以运行了 ;下面为asm文件 ;>>>>>>>>>>>>>>&…

GAN对抗生成网络(二)——算法及Python实现

1 算法步骤 上一篇提到的GAN的最优化问题是&#xff0c;本文记录如何求解这一问题。 首先为了表示方便&#xff0c;记&#xff0c;这里让最大的可视作常量。 第一步&#xff0c;给定初始的&#xff0c;使用梯度上升找到 ,最大化。关于梯度下降&#xff0c;可以参考笔者另一篇…

多线程访问FFmpegFrameGrabber.start方法阻塞问题

一、背景 项目集成网络摄像头实现直播功能需要用到ffmpeg处理rtmp视频流进行web端播放 通过网上资源找到大神的springboot项目实现了rtmp视频流转为http请求进行视频中转功能&#xff0c;其底层利用javacv的FFmpegFrameGrabber进行拉流、推流&#xff0c;进而实现了视频中转。 …

X86、X64、64位、32位归纳总结

梳理一下位数区别和命名规范。 操作系统的位数决定了内存寻址空间的大小 X86_32的简称是X86。32位&#xff0c;最多只能识别4GB的内存。 X86_64的简称是X64。64位&#xff0c;最多能识别数十TB内存。 由于历史发展原因&#xff0c;形成了这样的简称&#xff0c;简称很关键。…

redis的学习(二)

4 哈希表 哈希类型中的映射关系通常称为field-value&#xff0c;⽤于区分Redis整体的键值对&#xff08;key-value&#xff09;&#xff0c; 注意这⾥的value是指field对应的值&#xff0c;不是键&#xff08;key&#xff09;对应的值&#xff0c; 4.1 操作命令 hset&#xff…

前端编码技巧与规范

当我们完成项目的构建&#xff0c;进入开发阶段的时候&#xff0c;除了你需要了解框架本身的知识点外&#xff0c;我们还需要提前掌握一些项目的编码技巧与规范&#xff0c;在根源上解决之后因编码缺陷而导致的项目维护困难、性能下降等常见问题&#xff0c;为项目多人开发提供…

谷歌广告关键词出价根据什么来判断?

投放广告的目的是为了盈利&#xff0c;而关键字的出价直接关系到广告费用的支出。因此&#xff0c;设定出价上限时&#xff0c;不仅要参考关键字规划师的建议&#xff0c;还需结合广告的盈利表现来合理判断。 可以在谷歌广告账户的后台查看“平均每次点击费用”和“每次点击的…

《我在技术交流群算命》(二):QGraphicsItem怎么写自定义信号啊(QObject多继承顺序问题)

某位群友突然无征兆的抛出以下问题&#xff1a; QGraphicsItem怎么写自定义信号啊 看到这个问题的时候我是比较疑惑的&#xff0c;按鄙人对 Qt 的了解&#xff0c;自定义信号只需: 继承QObject类中加入Q_OBJECT宏声明一个信号并使用 但该群友毕竟也不是一个Qt新手&#xff0…