- 添加提示文字的思路:
要给二维码添加提示文字,需要先生成二维码图像,然后在图像上添加文字。Python中有很多库可以生成二维码图像,例如qrcode、pyqrcode等,这里以qrcode为例讲解。
qrcode库中的QRCode类可以生成二维码的矩阵数据,然后将矩阵转换成图片,最后使用Pillow库中的ImageDraw类向图片中添加文字。
- 示例1:生成一个含有提示文字的二维码
import qrcode
from PIL import Image, ImageDraw, ImageFont
# 创建QRCode对象
qr = qrcode.QRCode(
version=None,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
# 设置QRCode数据
qr.add_data('https://www.baidu.com')
# 生成QRCode矩阵数据
qr.make(fit=True)
# 转换成图片
img = qr.make_image(fill_color="black", back_color="white")
# 在图片中添加文字
draw = ImageDraw.Draw(img)
font = ImageFont.truetype('arial.ttf', 16) # 加载字体文件arial.ttf,字体大小为16
text = '扫描二维码,访问百度首页' # 添加的提示文字
draw.text((10, 310), text, font=font) # 文字起始位置以及对应字体
# 显示图片
img.show()
解释说明:
- 创建QRCode对象:实例化QRCode类,可以设置QRCode的版本、纠错水平、大小和边框大小等参数。
- 添加QRCode数据:调用add_data方法设定要生成的QRCode内容。
- 生成QRCode矩阵数据:调用make方法生成QRCode的矩阵数据。
- 转换成图片:调用make_image方法将QRCode矩阵数据转换成图片。
- 添加提示文字:使用Pillow库中的ImageDraw类的text方法向图片添加文字。
-
显示图片:调用show方法展示生成的二维码图片。
-
示例2:批量生成含有提示文字的二维码图片
import qrcode
from PIL import Image, ImageDraw, ImageFont
# 提示文字
text = ['扫描二维码,访问百度首页',
'扫描二维码,关注公众号',
'扫描二维码,加入QQ群']
# 批量生成二维码图片
for i in range(len(text)):
# 创建QRCode对象
qr = qrcode.QRCode(
version=None,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
# 设置QRCode数据
qr.add_data('https://www.baidu.com')
# 生成QRCode矩阵数据
qr.make(fit=True)
# 转换成图片
img = qr.make_image(fill_color="black", back_color="white")
# 在图片中添加文字
draw = ImageDraw.Draw(img)
font = ImageFont.truetype('arial.ttf', 16) # 加载字体文件arial.ttf,字体大小为16
draw.text((10, 310), text[i], font=font) # 文字起始位置以及对应字体
# 保存图片
img.save('pic'+str(i+1)+'.png')
解释说明:
- 定义提示文字:将要添加的提示文字放入列表text中。
- 批量生成二维码图片:使用for循环遍历text列表,重复执行下列步骤。
- 创建QRCode对象:与示例1相同。
- 添加QRCode数据:与示例1相同。
- 生成QRCode矩阵数据:与示例1相同。
- 转换成图片:与示例1相同。
- 添加提示文字:与示例1相同。
- 保存图片:使用Pillow库中的Image类的save方法保存图片。
综上所述,以上两条示例均演示了如何使用Python给二维码图像添加提示文字。第一条示例演示了一次性生成带提示文字的二维码图片,而第二条示例演示了批量生成带提示文字的二维码图片的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用Python给二维码图片添加提示文字 - Python技术站