树莓派3下用Python生成QR二维码标签

昨天搞定了树莓派下斑马标签打印机,今天顺便把条码标签生成也搞定吧。python

本次测试目标是在4cm*3cm的不干胶标签上,同时打印出QR二维码和文字。其中文字要支持中文。测试

思路很简单:.net

1 生成QR码图像;code

2 生成新空白图像,用以表明物理标签;blog

3 在标签图片上打印出QR图像;图片

4 在标签图片上打印出文字。utf-8

不得不说python仍是很给力的,实现起来很方便。unicode

#! coding: utf-8
import qrcode #apt-get python-qrcode
import Image,ImageDraw,ImageFont

# Create QR Image
qr = qrcode.QRCode(
    None	#自动决定大小,配合下面的fit=True
    ,qrcode.constants.ERROR_CORRECT_L	#纠错级别
    ,2		#单元方格的大小
    ,4		#须要预留的边距宽度
    )
qr.add_data('http://blog.csdn.net/ki1381')
qr.make(fit=True)
qrImg = qr.make_image()
#img.save('/home/pi/src/zzzz.png')

# Process Image
#qrImg = Image.open('/home/pi/src/zzzz.png')
(w,h) = qrImg.size

qrNewImg = Image.new('RGBA',(200,150),(255,255,255))	#200,150为经验值
qrNewImg.paste(qrImg,(0,0,w,h))

ft = ImageFont.truetype('/usr/share/fonts/truetype/freefont/FreeSans.ttf',16)
ft2 = ImageFont.truetype('/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc',16)
draw = ImageDraw.Draw(qrNewImg)
draw.text((8,h),'blog.csdn.net/ki1381',fill=(0,0,0),font = ft) #col,row
draw.text((w+8,4),unicode('ki1381专栏','utf-8'),fill=(0,0,0),font = ft2)

qrImg.close()
qrNewImg.save('/home/pi/src/a.png','PNG')
qrNewImg.close()

a.png效果图以下:get