昨天搞定了树莓派下斑马标签打印机,今天顺便把条码标签生成也搞定吧。
本次测试目标是在4cm*3cm的不干胶标签上,同时打印出QR二维码和文字。其中文字要支持中文。
思路很简单:
1 生成QR码图像;
2 生成新空白图像,用以代表物理标签;
3 在标签图片上打印出QR图像;
4 在标签图片上打印出文字。
不得不说python还是很给力的,实现起来很方便。
#! 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效果图如下: