欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > Python 将文字和二维码 生成到BMP上 可以做标签打印等

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

2025/2/24 22:45:00 来源:https://blog.csdn.net/rotion135/article/details/144853257  浏览:    关键词: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博客

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词