Pokud jste četli dnešní článek, možná vás, stejně jako mě, zaujal způsob, jakým Google Authenticator kreslí QR kódy přímo na textovou konzoli. Možná vás, stejně jako mě, napadlo, zda je to nějaká obecná funkce a zda by se to nedalo využít pro jakékoli QR kódy. A ode dneška odpověď zní: Ano, dalo!
Představuji tímto prográmek ttyqr
, jednoduchý generátor QR kódů v textovém terminálu:
Jedná se drobnou úpravu demonstračního programu knihovny libqrencode. Rozdíl spočívá v tom, že zatímco původní verze renderuje QR kód do PNG obrázku, ttyqr používá funkci pro textové renderování vypůjčenou ze zdrojového kódu programu Google Authenticator.
Stahujte zde: GitHub binary amd64 binary x86
Prográmek potřebuje k běhu knihovnu libqrencode (testováno s verzí 3.1.1), pro kompilaci pak také hlavičkové soubory zmíněné knihovny. Pomocí přepínačů je možné volit různé vlastnosti generovaných QR kódů. Renderovací algoritmus také obsahuje možnost zhuštěného záznamu, kdy se na jeden textový řádek zapíšou dva QR moduly na výšku pomocí unicode znaků ▀, ▄ a █. Tato volba se aktivuje přepínačem -b
, na mém terminálu však k uspokojivému výsledku nevedla:
Volbu jsem nicméně v programu nechal, stejně jako další volby, které tam zbyly z původního programu qrencode. Třeba pro ně někdo najde využití.
Osobně mám z programu radost, vygenerování QR kódu pro jednorázový přenos adresy nebo textu do telefonu je rychlejší než většina online generátorů, navíc nepotřebuje připojení k internetu a nevyzrazuje potenciálně citlivá data online službám.
Fajny program, bude se hodit :-) Diky. Nechci byt za trolla, jenom me to tak ted napadlo, kdyz jsem si cetl ten zdrojak a informace o licencich ktere obsahuje. To jde takto mixovat kod v Apache a GPLv3? Fakt se ptam jenom z toho duvodu, ze v tom sam nemam dost jasno, tak by me zajimala odpoved nekoho fundovaneho, nic vic, nic min :) Diky.
[6]. Rozhodně nejsem v tomhle oboru fundovaný, ale např. Wikipedia uvádí: „The Apache License 2.0 is a free software license, compatible with version 3 of the GNU General Public License (GPL). Compatibility in this case means that since the GPL version 3 is considered a superset of the Apache License 2.0, a project combining GPL version 3 and Apache License 2.0 code will need to be licensed under the GPL version 3“
[8] Vypadá to, že daná čtečka neumí správně UTF-8. Na androidu to správně přečte Barcode Scanner, QRdroid i Google Googles. Správně to přečte i online čtečka:
Ono bohužel norma nespecifikuje kódovou stránku, ve které mají být osmibitová slova zakódována, resp. specifikuje nějakou podivnou japonskou. V každém případě nejde o chybu enkodéru, ten žádné překódování neprovádí. Je možné zkusit třeba latin2 pomocí:
$ echo "Ahoj Světe" | iconv -f utf-8 -t iso8859-2 | ttyqr
A kto chce verziu bez pouzita libqrencode nech sa pozrie na https://github.com/prusnak/mqrg ...
(potreboval som kod na generovanie QR pre embedded zariadenie a libqrencode je na to moc velka ...)
Tak to stojí za to hodit to na facebook
http://www.facebook.com/qrkody
Co o sobě napsat? Absolvent ČVUT FEL, linuxák, síťař. Mimo to se zajímám o elektrotechniku, elektroniku a speciálně elektrické pohony.
Přečteno 57 276×
Přečteno 15 946×
Přečteno 15 859×
Přečteno 15 160×
Přečteno 13 129×