From 2a4c11348a11e916daf7a1b81e9cc03fa0d13690 Mon Sep 17 00:00:00 2001 From: David Rodenkirchen Date: Fri, 30 Aug 2024 00:26:39 +0200 Subject: [PATCH] add code --- ezgg_logo.png | Bin 0 -> 34040 bytes joystix.otf | Bin 0 -> 37268 bytes main.py | 42 ++++++++++++++++++++++++++++++++++++++++++ output/.gitkeep | 0 4 files changed, 42 insertions(+) create mode 100644 ezgg_logo.png create mode 100644 joystix.otf create mode 100644 main.py create mode 100644 output/.gitkeep diff --git a/ezgg_logo.png b/ezgg_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3ccd890b0ada0e8bc45a293d68712a163acc17a2 GIT binary patch literal 34040 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 Y1AL;CbFmR5ivR!s07*qoM6N<$g6%*JWdHyG literal 0 HcmV?d00001 diff --git a/joystix.otf b/joystix.otf new file mode 100644 index 0000000000000000000000000000000000000000..20a3100fb5a778e03bf130027ce1b1c01444e24b GIT binary patch literal 37268 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 KWdi<#z5fSo7^(aK literal 0 HcmV?d00001 diff --git a/main.py b/main.py new file mode 100644 index 0000000..c9d06ba --- /dev/null +++ b/main.py @@ -0,0 +1,42 @@ +from pathlib import Path + +import qrcode +from PIL import Image, ImageDraw, ImageFont + +COLOR = (1, 135, 134) +FONT_LINK = ImageFont.truetype("joystix.otf", size=22) +FONT_ID = ImageFont.truetype("joystix.otf", size=28) +FONT_TEXT = ImageFont.truetype("joystix.otf", size=40) +ID_PREFIX = "EZ-ID:" +OUT_DIR = Path("./output") + +num_label_start = int(input("Start ID: ")) +num_label_end = int(input("End ID: ")) + +for num in range(num_label_start, num_label_end + 1): + num_as_string = f"{num:06}" + label_id = f"{ID_PREFIX}{num_as_string}" + print(f"Generating label \"{label_id}\"") + + label = Image.new("RGB", (800, 350), (255, 255, 255)) + logo = Image.open("ezgg_logo.png") + + qr = qrcode.QRCode( + version=1, + error_correction=qrcode.constants.ERROR_CORRECT_L + ) + + qr.add_data(label_id) + qr.make(fit=True) + qr_img = qr.make_image(fill_color=COLOR, back_color="white") + + label.paste(qr_img, (0, 10)) + label.paste(logo, (290, 120)) + + draw = ImageDraw.Draw(label) + + draw.text((15, 285), label_id, font=FONT_ID, fill=COLOR) + draw.text((320, 38), "Eigentum der", font=FONT_TEXT, fill=COLOR) + draw.text((570, 300), "ezgg-ev.de", font=FONT_LINK, fill=COLOR) + + label.save(OUT_DIR / f"{num_as_string}.png") diff --git a/output/.gitkeep b/output/.gitkeep new file mode 100644 index 0000000..e69de29