upload_exams/make_qrcodes/make_qr.py

32 lines
1.1 KiB
Python
Raw Permalink Normal View History

def make_qrcode(some_text, directory) :
'''this turns some text data into a qrcode'''
import qrcode
from PIL import Image, ImageDraw, ImageFont
from os import chdir, listdir
chdir(directory)
if type(some_text) != str :
print('input', some_text, 'is not a string')
raise TypeError
myfont = ImageFont.truetype('/usr/share/fonts/truetype/freefont/FreeSansBold.ttf',40)
qr = qrcode.QRCode(version=1, error_correction=qrcode.constants.ERROR_CORRECT_Q, box_size=10, border=1)
print('data=',some_text)
qr.add_data(some_text)
qr.make()
img = qr.make_image()
img_w, img_h = img.size
background = Image.new('RGB',(290,290),(255,255,255))
bg_w, bg_h = background.size
offset = ((bg_w - img_w) // 2, 0)
background.paste(img, offset)
I1 = ImageDraw.Draw(background)
I1.text((120,250),str(some_text),font=myfont,fill=0)
print(type(background))
background.save(some_text + '.jpg')
background.save(some_text + '.png')
return
if __name__ == '__main__' :
for indx in range(100,400) :
name = str(indx).zfill(3)
make_qrcode(name, '/home/tomtaylor/exams_/qrcodes')