32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
|
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')
|