Created
March 29, 2024 08:14
-
-
Save robbyHuelsi/841d50d9a94fa6d6ad7b6e5d4a031a8c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from datetime import datetime | |
from pathlib import Path | |
import qrcode | |
from icalendar import Calendar, Event | |
from qrcode.image.svg import SvgPathImage | |
# Create event | |
event = Event() | |
event.add("summary", "FÜR Demokratie wählen") | |
event.add("dtstart", datetime(2024, 6, 9, 8)) | |
event.add("dtend", datetime(2024, 6, 9, 18)) | |
# event.add("location", "Im Ländle und Europa") | |
event.add("description", "Gemeinderats-, Regional- und Europawahl") | |
# event.add("url", "https://www.stuttgart.de/service/wahlen/wahlen-am-9.-juni-2024/") | |
# Create calendar and add event | |
cal = Calendar() | |
cal.add_component(event) | |
# Convert the iCal data to string | |
ical_data = cal.to_ical() | |
print(ical_data.decode()) | |
# Generate a QR code from the iCal data | |
qr = qrcode.QRCode( | |
version=1, | |
error_correction=qrcode.constants.ERROR_CORRECT_L, | |
box_size=10, | |
border=0, | |
) | |
qr.add_data(ical_data) | |
qr.make(fit=True) | |
# PNG: white on transparent | |
img = qr.make_image( | |
fill_color="white", | |
back_color="transparent", | |
).save("qr_white_transparent.png") | |
# SVG: white on transparent | |
img = qr.make_image(image_factory=SvgPathImage) | |
img = img.to_string().decode(encoding="ascii").replace('fill="#000000"', 'fill="#FFF"') | |
Path("qr_white_transparent.svg").write_text(img, encoding="ascii") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment