BUNTI

BUNTI ist ein zweidimensionaler Farbcode, den eine Kamera lesen kann, und Teil von Wolly. Der Inhalt wird als Folge der DNA-Basen A, C, G und T dargestellt, zwei Bit je Zelle, in vier Farben: Grün für A, Blau für C, Gelb für G und Rot für T. Drei schwarz-weiße Suchmuster und ein Eckmuster zeigen der Kamera, wo der Code liegt. Aus den Suchmustern bestimmt der Scanner Größe und Lage des Codes. Das kleinere Eckmuster liefert den vierten Punkt, damit auch ein schräg fotografierter Code gelesen werden kann. Quelltext: github.com/heikozim/hilde-wolly; die Sprache: github.com/heikozim/hilde.

Warum vier Farben

BUNTI ist eine Hommage an die DNA: vier Basen, vier Farben. Die Wahl hat auch einen Nutzen: Vier Farben tragen zwei Bit je Zelle, doppelt so viel wie Schwarz-Weiß, und lassen sich relativ sicher unterscheiden. Mit 256 Farben wären es acht Bit, aber so viele Farben können beim Farbdruck oder bei ungünstigem Licht mehr Lesefehler erzeugen. BUNTI ersetzt keine Norm: Für den Austausch mit anderen gibt es QR-Code und JAB Code (Fraunhofer SIT im Auftrag des BSI, ISO/IEC 23634). Es ist für eigene, proprietäre Anwendungen gedacht.

Wie der Code geschützt ist

Drei Beispiele

Jedes Bild hat das Kommandozeilenprogramm buntipng aus Wolly aus dem danebenstehenden Text erzeugt, mit 8 Pixeln je Zelle und einem Rand von 4 Zellen. Das Bild wurde in eine Datei geschrieben, aus dieser Datei wieder eingelesen und dekodiert. Der gelesene Text stimmte jedes Mal mit dem Ausgangstext überein. Die Bilder stammen unverändert aus dem Demo-Verzeichnis von Wolly, wo auch ihre SHA-256-Prüfsummen stehen.

BUNTI-Code des Worts Wolly, 21 mal 21 Zellen

Der Text „Wolly“, 5 Byte, 21 × 21 Zellen.

BUNTI-Code eines deutschen Satzes über Wolly, 33 mal 33 Zellen

Der Text „Wolly ist ein Web-Framework in Hilde: Formulare, Sitzungen, Bilder und dieser Farbcode, Bunti, den eine Kamera liest.“, 117 Byte, 33 × 33 Zellen.

BUNTI-Code eines deutschen Texts von 415 Byte, 53 mal 53 Zellen

Der folgende Text, 415 Byte, 53 × 53 Zellen.

Bunti ist ein zweidimensionaler Farbcode: vier Farben tragen je zwei Bit, drei Suchmuster und ein Eckmuster zeigen der Kamera die Lage, Reed-Solomon und eine CRC-32 sichern die Nutzlast. Dieser Text ist die Nutzlast dieses Bildes; das Programm hat das PNG geschrieben, aus der Datei wieder gelesen und entschluesselt, und der gelesene Text ist dieser Text. Wolly, ein Web-Framework in Hilde, Heiko Zimmermann, 2026.