Update QRCodex.py
This commit is contained in:
parent
fdf9ebce2c
commit
982f7144bf
|
@ -1,62 +1,62 @@
|
||||||
import io
|
import io
|
||||||
import math
|
import math
|
||||||
# Importing Image and ImageFont, ImageDraw module from PIL package
|
# Importing Image and ImageFont, ImageDraw module from PIL package
|
||||||
from PIL import Image, ImageFont, ImageDraw
|
from PIL import Image, ImageFont, ImageDraw
|
||||||
#import QRcode generator lib
|
#import QRcode generator lib
|
||||||
import qrcode
|
import qrcode
|
||||||
|
|
||||||
#set the text and the code here
|
#set the text and the code here
|
||||||
text = "█SLHJD!■C■KOQFHY■PKJSOOFH■BY■ONDTTX■GRC■ADLYJ■ZBSH■SOITRM●JKUHSOK●ZA■MAOLH■RVHRPJ!■█"
|
text = "█SLHJD!■C■KOQFHY■PKJSOOFH■BY■ONDTTX■GRC■ADLYJ■ZBSH■SOITRM●JKUHSOK●ZA■MAOLH■RVHRPJ!■█"
|
||||||
code = "TCHERNOBYL" #3💪+1👒+2👕+1🧥+1🧣+1🔫+4👂=🤠+❓TCHERNOBYL
|
code = "TCHERNOBYL" #3💪+1👒+2👕+1🧥+1🧣+1🔫+4👂=🤠+❓TCHERNOBYL
|
||||||
|
|
||||||
textsize = 30 #px
|
textsize = 30 #px
|
||||||
|
|
||||||
#generate QRCode
|
#generate QRCode
|
||||||
qr = qrcode.QRCode(
|
qr = qrcode.QRCode(
|
||||||
version=1, #smallest
|
version=1, #smallest
|
||||||
error_correction=qrcode.constants.ERROR_CORRECT_L,
|
error_correction=qrcode.constants.ERROR_CORRECT_L,
|
||||||
box_size=10,
|
box_size=10,
|
||||||
border=0,
|
border=0,
|
||||||
)
|
)
|
||||||
qr.add_data(code)
|
qr.add_data(code)
|
||||||
|
|
||||||
#saving the normal QRCode image
|
#saving the normal QRCode image
|
||||||
img = qr.make_image()
|
img = qr.make_image()
|
||||||
type(img) # qrcode.image.pil.PilImage
|
type(img) # qrcode.image.pil.PilImage
|
||||||
img.save("qrcode.png")
|
img.save("qrcode.png")
|
||||||
|
|
||||||
#storing the qrCode in a list[list[bool]]
|
#storing the qrCode in a list[list[bool]]
|
||||||
boolmatrix = qr.get_matrix()
|
boolmatrix = qr.get_matrix()
|
||||||
|
|
||||||
# creating a image object
|
# creating a image object
|
||||||
codeximage = Image.new("RGB", (textsize*len(boolmatrix), textsize*len(boolmatrix)), "white")
|
codeximage = Image.new("RGB", (textsize*len(boolmatrix), textsize*len(boolmatrix)), "white")
|
||||||
codexdraw = ImageDraw.Draw(codeximage)
|
codexdraw = ImageDraw.Draw(codeximage)
|
||||||
|
|
||||||
# specified font size
|
# specified font size
|
||||||
fontnormal = ImageFont.truetype(r'./FiraMono_Regular.otf', textsize)
|
fontnormal = ImageFont.truetype(r'./FiraMono_Regular.otf', textsize)
|
||||||
fontbold = ImageFont.truetype(r'./FiraMono_Bold.otf', textsize)
|
fontbold = ImageFont.truetype(r'./FiraMono_Bold.otf', textsize)
|
||||||
|
|
||||||
# drawing text
|
# drawing text
|
||||||
index = 0
|
index = 0
|
||||||
for i, inner_list in enumerate(boolmatrix):
|
for i, inner_list in enumerate(boolmatrix):
|
||||||
for j, element in enumerate(inner_list):
|
for j, element in enumerate(inner_list):
|
||||||
# get the letter in the text
|
# get the letter in the text
|
||||||
letter = text[index%len(text)]
|
letter = text[index%len(text)]
|
||||||
# set the font and the color according to the QRCode cell bool value
|
# set the font and the color according to the QRCode cell bool value
|
||||||
if(element):
|
if(element):
|
||||||
font=fontbold
|
font=fontbold
|
||||||
color="black"
|
color="black"
|
||||||
else:
|
else:
|
||||||
font=fontnormal
|
font=fontnormal
|
||||||
color="white" if (letter == '█') else "grey"
|
color="white" if (letter == '█') else "grey"
|
||||||
# drawing a box if the letter is █
|
# drawing a box if the letter is █
|
||||||
if (letter == '█'):
|
if (letter == '█'):
|
||||||
codexdraw.rectangle([(j*textsize, i*textsize), (j*textsize+textsize, i*textsize+textsize)] , fill =color)
|
codexdraw.rectangle([(j*textsize, i*textsize), (j*textsize+textsize, i*textsize+textsize)] , fill =color)
|
||||||
# drawing the letter
|
# drawing the letter
|
||||||
else:
|
else:
|
||||||
codexdraw.multiline_text((j*textsize+textsize/5, i*textsize-textsize/10), letter, fill =color, font =font, spacing=0, align ="left")
|
codexdraw.multiline_text((j*textsize+textsize/5, i*textsize-textsize/10), letter, fill =color, font =font, spacing=0, align ="left")
|
||||||
|
|
||||||
index+=1
|
index+=1
|
||||||
|
|
||||||
#saving the codex QRCode image with the text in the cells
|
#saving the codex QRCode image with the text in the cells
|
||||||
codeximage.save("codex.png")
|
codeximage.save("codex.png")
|
Loading…
Reference in New Issue