Knihovna generátoru QR kódů
Zavedení
Tento projekt si klade za cíl být nejlepší a nejpřehlednější knihovnou generátoru QR kódu ve více jazycích. Primárním cílem jsou flexibilní možnosti a naprostá korektnost. Sekundárními cíli jsou kompaktní velikost implementace a dobré komentáře k dokumentaci.
Domovská stránka s živou ukázkou JavaScriptu, rozsáhlými popisy a srovnáním konkurentů: [https://www.nayuki.io/page/qr-code-generator-library](https://www.nayuki.io/page/qr-code-generator-library)
Vlastnosti
Základní vlastnosti:
* Dostupné v 6 programovacích jazycích, všechny s téměř stejnou funkčností: Java, TypeScript/JavaScript, Python, Rust, C++, C
* Výrazně kratší kód, ale více komentářů k dokumentaci ve srovnání s konkurenčními knihovnami
* Podporuje kódování všech 40 verzí (velikostí) a všech 4 úrovní opravy chyb podle standardu QR Code Model 2
* Výstupní formát: Nezpracované moduly/pixely symbolu QR
* Detekuje trestné vzory podobné vyhledávači přesněji než jiné implementace
* Kóduje číselný a speciální alfanumerický text na menším prostoru než obecný text
* Open source kód pod licencí MIT
Manuální parametry:
* Uživatel může zadat minimální a maximální povolená čísla verzí, pak knihovna automaticky vybere nejmenší verzi v rozsahu, který odpovídá datům
* Uživatel může zadat vzor masky ručně, jinak knihovna automaticky vyhodnotí všech 8 masek a vybere tu optimální
* Uživatel může zadat absolutní úroveň opravy chyb nebo povolit knihovně, aby ji zvýšila, pokud nezvýší číslo verze
* Uživatel může ručně vytvořit seznam datových segmentů a přidat segmenty ECI
Volitelné pokročilé funkce (pouze Java):
* Kóduje japonský text Unicode v režimu kanji, čímž ušetří spoustu místa ve srovnání s UTF-8 bajty
* Vypočítá optimální přepínání režimu segmentů pro text se smíšenými numerickými/alfanumerickými/obecnými/kanji částmi Více informací o technologii QR Code a návrhu této knihovny lze nalézt na domovské stránce projektu.
Examples
Níže uvedený kód je v Javě, ale porty ostatních jazyků jsou navrženy s v podstatě stejným pojmenováním a chováním API.
"Jáva."
import java.awt.image.BufferedImage;
importovat java.io.File;
import java.util.List;
import javax.imageio.ImageIO;
import io.nayuki.qrcodegen.*;
// Jednoduchá obsluha
QrCode qr0 = QrCode.encodeText(“Ahoj světe!”, QrCode.Ecc.MEDIUM);
BufferedImage img = toImage(qr0, 4, 10); // Viz QrCodeGeneratorDemo
ImageIO.write(img, „png“, nový File(“qr-code.png”));
// Ruční provoz
Seznam segs = QrSegment.makeSegments(“3141592653589793238462643383”);
QrCode qr1 = QrCode.encodeSegments(segs, QrCode.Ecc.HIGH, 5, 5, 2, false);
for (int y = 0; y < qr1.size; y++) {
for (int x = 0; x < qr1.size; x++) {
(… paint qr1.getModule(x, y) …)
}
}
“`
Licence
Copyright ツゥ 2024 Project Nayuki. (licence MIT)
[https://www.nayuki.io/page/qr-code-generator-library](https://www.nayuki.io/page/qr-code-generator-library)
Tímto se bezplatně uděluje povolení jakékoli osobě, která získá kopii tohoto softwaru a související dokumentace files (dále jen „Software“) nakládat se softwarem bez omezení, včetně, bez omezení, práv používat, kopírovat, upravovat, slučovat, publikovat, distribuovat, udělovat sublicence a/nebo prodávat kopie softwaru a umožnit osobám komu je k tomu Software poskytnut, za následujících podmínek:
* Výše uvedené upozornění na autorská práva a toto upozornění na povolení budou součástí všech kopií nebo podstatných částí Softwaru.
* Software je poskytován „tak, jak je“, bez záruky jakéhokoli druhu, výslovné nebo předpokládané, včetně, ale bez omezení na záruky prodejnosti, vhodnosti pro konkrétní účel a neporušení práv. Autoři nebo držitelé autorských práv v žádném případě nenesou odpovědnost za jakékoli nároky, škody nebo jinou odpovědnost, ať už v případě smluvního jednání, deliktu nebo jinak, vyplývající z, z nebo v souvislosti se softwarem nebo používáním či jinými jednáními v Software.
Dokumenty / zdroje
![]() |
Knihovna generátoru QR kódu instax [pdfUživatelská příručka Knihovna generátoru QR kódu, knihovna generátoru kódu, knihovna generátoru, knihovna |