Kreativní QR kódy s Pythonem

Zpět na blog

Kreativní QR kódy s Pythonem

python qr kódy segno obrázek animace

QR kódy dnes najdete všude. Od jídelních lístků v restauracích až po reklamní plakáty, QR kódy se staly součástí našeho života. Tyto skenovatelné čtverečky v sobě mají zakódované informace, které umožňují přístup k webovým stránkám, vizitkám nebo profilům na sociálních sítích.

S trochou znalostí programování v Pythonu si můžete vytvářet vlastní kreativní QR kódy, které už nemusí být jen černobílé a statické!

V tomto článku si vyzkoušíte práci s jednou šikovnou knihovnu Pythonu, která umí vytvářet běžné i mikro QR kódy. A nejen vytvářet, ale i ukládat v mnoha formátech, jako např. PNG, SVG, PDF a dalších. Poradí si také s barvami a animacemi, takže vaší QR kreativitě už nebude bránit vůbec nic. 😉

Instalace

Instalace je záležitostí jednoho příkazu v terminálu (příkazová řádka). Pokud používáte editor Thonny, bude stačit pár kliků.

PIP

pip install segno

Conda

conda install conda-forge::segno

Thonny

Vyberte položku v menu Tools > Manage packages..., do vyhledávacího pole napište segno, klikněte na název první položky segno a klikněte tlačítko Install.

Import

Prvním krokem je import knihovny.

import segno

Hello, LovelyData

Zkuste si jednoduchý příklad, který vytvoří QR kód pro odkaz na stránky LovelyData.cz a uloží ho jako PNG bitmapu.

qr = segno.make("https://www.lovelydata.cz")
qr.save("lovely-qr.png")

QR kód

Další formáty

Knihovna segno umí QR kódy ukládat v mnoha formátech. Kompletní seznam najdete na stránkách nápovědy.

Vyzkoušejte alespoň některé, včetně textového formátu:

qr = segno.make("https://www.lovelydata.cz")

# Ulož QR kód jako SVG, PNG, PDF a TXT
for typ in ("svg", "png", "pdf", "txt"):
    qr.save(f"lovely-qr.{typ}")

Velikost

Na velikosti záleží. V případě QR kódů to platí na 100 %.

Výchozí nastavení pro měřítko (scale factor) je 1. Tedy, že velikost jednoho čtverečku v QR kódu se rovná jednomu pixelu.

Pokud potřebujete vygenerovat větší kód, stačí použít parametr scale.

qr = segno.make("https://www.lovelydata.cz")
qr.save("lovely-qr.png", scale=5)

Mikro QR kódy

Metoda segno.make() se snaží vytvořit co nejmenší QR kód.

Pokud je informace krátká (obsahuje jen několik znaků), vygeneruje se mikro QR kód.

qr = segno.make("LovelyData.cz")
qr.save("lovely-micro-qr.png")

QR kód

Mikro QR kódy jsou méně používané, než běžné QR kódy. Některé čtečky je neumí přečíst. Proto se v praxi více využívají běžné QR kódy.

Pokud vám mikro QR nevyhovuje, můžete si vynutit standardní QR kód pomocí metody make_qr.

qr = segno.make_qr("LovelyData.cz")
qr.save("lovely-qr.png")

QR kód

Barevné QR kódy

Základy jste zvládli. Máte chuť být trochu kreativnější? Vyzkoušejte barvy.

qr = segno.make("https://www.lovelydata.cz")
qr.save("lovely-color-qr.png",
        dark="#900090",
        light="#fde68a",
        scale=10,)

QR kód

Pro barvy můžete použít také běžné HTML názvy. Například:

qr = segno.make("https://www.lovelydata.cz")
qr.save("lovely-color-qr.png",
        dark="DarkOrange",
        light="LightCyan",
        scale=10,)

QR kód

Až si budete hrát s barvami, nezapomeňte na dobrý kontrast mezi světlými a tmavými částmi QR kódu. V opačném případě by QR čtečka mohla mít problém s přečtením kódu.

Nemusíte se omezovat jen na dvě barvy. QR kódy se skládají z více částí a pokud to vaše umělecké vyjádření vyžaduje, můžete obarvit i je. Další informace najdete v dokumentaci.

Obrázkové QR kódy

QR kódy mohou obsahovat obrázky, například logo vaší společnosti nebo vzdělávacího kurzu.

Pokud chcete využívat v QR kódech obrázky - a to i ty animované! - musíte si doinstalovat ještě knihovnu qrcode-artistic.

PIP

pip install qrcode-artistic

Conda

conda install conda-forge::qrcode-artistic

Thonny

Vyberte položku v menu Tools > Manage packages..., do vyhledávacího pole napište qrcode-artistic, klikněte na název první položky qrcode-artistic a klikněte tlačítko Install.

QR kód se statickým obrázkem

qr = segno.make("https://www.lovelydata.cz/mooc/kurz/LDO056-datova-gramotnost-pro-kazdeho/",
                error="h")
qr.to_artistic(background="datova-gramotnost-pro-kazdeho.png",
               target="lovely-kurz-qr.png",
               scale=10)

QR kód

Možná jste si všimli, že v předchozím příkladu je navíc parametr error="h".

Jedná se o korekci chyb (Error correction level), která pomáhá lepší čitelnosti kódu. To platí zejména pro kódy s obrázky nebo animacemi.

QR kód s animací načtenou z URL

Pokud máte pocit, že obrázek bez animace je nuda, tak knihovna umožňuje použít animovaný obrázek.

Obrázky není nutné mít uložené na počítači. Můžete je načíst rovnou z webu.

import segno
from urllib.request import urlopen

qr = segno.make("https://www.lovelydata.cz", 
                error="h")
bg = urlopen("https://media.giphy.com/media/26BRABnerqonwLHMc/giphy.gif")
qr.to_artistic(background=bg,
               target="lovely-animace-qr.gif",
               scale=10)

QR kód

Závěr

Knihovna segno toho umí daleko víc - například generovat vizitky nebo QR platby. Navíc má podrobnou dokumentaci, což nebývá vždy pravidlem.


Líbil se vám článek? Sdílejte ho s ostatními

nebo nám napište něco hezkého. Děkujeme!

Zpět na blog

SQL pro každý den

Jak si užít SQL a nezabloudit v kódu

Zobrazit knihu

Python - základy

Naučte se základy Pythonu - populárního jazyka, který vzal datovou vědu doslova útokem.

Zobrazit kurz

Úvod do jazyka R

Naučte se efektivní datovou analýzu.

Zobrazit kurz

Hledáme další autory

Publikujte na Lovely Blogu a inspirujte ostatní! Sdílením svých znalosti si budujete osobní značku.

Kontaktujte nás

Odběr novinek

Novinky, návody a tipy přímo do vašeho emailu.

Copyright © 2018-2024, Colorbee, s.r.o.

Designed by grafikli.cz in Prague.