Prosty generator kodów QR w języku Python, który tworzy kod QR z podanego adresu URL.
Wypróbuj aplikację online (bez instalacji!):
🔗 https://web-production-18f06.up.railway.app
Aplikacja działa 24/7 w chmurze Railway. Wejdź, wpisz URL, wygeneruj QR i pobierz PNG - wszystko w przeglądarce! 🚀
Skrypt generuje kod QR na podstawie wprowadzonego adresu URL i zapisuje go jako plik PNG. Kod QR można następnie zeskanować telefonem, aby szybko przejść do zapisanego adresu.
Projekt oferuje 3 sposoby generowania kodów QR:
- Nowoczesny interfejs webowy
- Dostępny w przeglądarce
- Bez edycji kodu - wszystko przez formularz
- Możliwość hostingu online (Railway/Render)
- Idealne dla użytkowników bez znajomości Pythona
- Generowanie QR z niestandardowym podpisem
- Edycja parametrów w kodzie
- Automatyczne zapisywanie w
outputs/
- Podstawowe funkcje
- Najprostsze użycie
- Szybkie generowanie bez dodatków
- Python 3.x
- Biblioteka
qrcode - Biblioteka
Pillow(PIL)
- Sklonuj repozytorium:
git clone https://github.com/mplik/qr-code-generator.git
cd qr-code-generator- Zainstaluj wymagane biblioteki:
pip install -r requirements.txtlub w środowisku wirtualnym:
python -m venv venv
.\venv\Scripts\Activate.ps1 # Windows
source venv/bin/activate # Linux/Mac
pip install -r requirements.txt- Upewnij się, że zainstalowałeś wszystkie zależności:
pip install -r requirements.txt- Uruchom serwer Flask:
python app.py- Otwórz przeglądarkę i wejdź na:
http://127.0.0.1:5000
- Gotowe! 🎉
- Wpisz URL w formularzu
- Dodaj opcjonalną etykietę
- Kliknij "Generuj kod QR"
- Pobierz wygenerowany PNG
- Załóż konto na railway.app
- Zaloguj się przez GitHub
- Kliknij "New Project" → "Deploy from GitHub repo"
- Wybierz
mplik/qr-code-generator - Railway automatycznie:
- Wykryje Python
- Zainstaluje dependencies z
requirements.txt - Uruchomi aplikację zgodnie z
Procfile
- Gotowe! Otrzymasz link do działającej aplikacji
- Załóż konto na render.com
- Połącz z GitHubem
- Utwórz "New Web Service"
- Wybierz repozytorium
qr-code-generator - Render automatycznie skonfiguruje deployment
- Gotowe! Twoja aplikacja jest online
- ✅ Intuicyjny interfejs użytkownika
- ✅ Generowanie QR w czasie rzeczywistym
- ✅ Niestandardowe etykiety pod kodem QR
- ✅ Pobieranie PNG jednym kliknięciem
- ✅ Responsywny design (działa na telefonach)
- ✅ Profesjonalny wygląd z gradientowym tłem
- ✅ Brak potrzeby edycji kodu
- Edytuj plik
qr_kod.pyi wpisz swój adres URL w zmiennejurl:
url = "https://twoj-adres.com"- Uruchom skrypt:
python qr_kod.py- Kod QR zostanie zapisany w katalogu
docs/examples/qr_meta_horizon.pngi automatycznie otworzy się w domyślnej przeglądarce obrazów.
Przykładowy kod QR wygenerowany dla "EL-QR Studio"
import qrcode
from PIL import Image
import os
url = "https://horizon.meta.com/profile/553955491139068/"
# Upewnij się, że katalog istnieje
os.makedirs("docs/examples", exist_ok=True)
img = qrcode.make(url)
img.save("docs/examples/qr_meta_horizon.png")
img.show()
print("Plik został zapisany jako 'docs/examples/qr_meta_horizon.png'")- ✅ Generowanie kodu QR z dowolnego adresu URL
- ✅ Automatyczne zapisywanie jako plik PNG
- ✅ Wyświetlanie wygenerowanego kodu QR
- ✅ Prosty i szybki w użyciu
- ✅ Wszystkie funkcje podstawowej wersji
- ✅ Dodawanie niestandardowego podpisu pod kodem QR
- ✅ Automatyczna konfiguracja katalogu wyjściowego (outputs/)
- ✅ Opcjonalne zapisywanie kopii na OneDrive
- ✅ Profesjonalna czcionka Segoe UI dla tekstu
- ✅ Nowoczesne API PIL (textbbox)
- Edytuj plik
qr_generator_v2.pyi ustaw parametry:
url = "https://twoj-adres.com" # Twój adres URL
opis = "Nazwa QR" # Podpis pod kodem QR
filename = "outputs/twoj_qr.png" # Ścieżka zapisu- Uruchom skrypt:
python qr_generator_v2.py- Kod QR z podpisem zostanie zapisany w katalogu
outputs/i automatycznie się otworzy.
import qrcode
from PIL import Image, ImageDraw, ImageFont
import os
url = "https://rabinem6.fakturownia.pl/u/partner"
opis = "Faktury QR"
filename = "outputs/faktury_qr.png"
# Upewnij się, że katalog istnieje
os.makedirs("outputs", exist_ok=True)
# Generowanie kodu QR
img = qrcode.make(url).convert('RGB')
# Ustalanie rozmiarów
szerokosc, wysokosc = img.size
wysokosc_podpisu = 40
# Tworzenie nowego obrazka z miejscem na podpis
img_podpis = Image.new('RGB', (szerokosc, wysokosc + wysokosc_podpisu), 'white')
img_podpis.paste(img, (0, 0))
# Dodawanie tekstu
draw = ImageDraw.Draw(img_podpis)
try:
font = ImageFont.truetype("segoeui.ttf", 28)
except:
font = ImageFont.load_default()
# Obliczanie pozycji tekstu (wyśrodkowanie)
bbox = draw.textbbox((0, 0), opis, font=font)
szer_napisu = bbox[2] - bbox[0]
wys_napisu = bbox[3] - bbox[1]
x = (szerokosc - szer_napisu) // 2
y = wysokosc + (wysokosc_podpisu - wys_napisu) // 2
draw.text((x, y), opis, font=font, fill='black')
img_podpis.save(filename)
img_podpis.show()
print(f"Plik został zapisany jako '{filename}'")MIT License
