Blinkenlights Markup Language
From BlinkenArea Wiki
Die Blinkenlights Markup Language (BML) ist ein XML-basiertes Format zur Darstellung von Blinkenlights-Animationen. Das blm-Tag umschließt die gesamte Beschreibung der Animation, die aus einem optionalen Header besteht und beliebig vielen Frames besteht. Die Frames setzen sich wiederum aus Row-Tags zusammen, die jeweils eine Pixelzeile beschreiben.
Aufbau
Tag: | Attribut: | Beschreibung: |
blm | width | // Breite der Animation in Pixel |
height | // Höhe der Animation in Pixel | |
bits | // Anzahl der Bits pro Kanal (Standard: 1) | |
channels | // Anzahl der Farbkanäle (1 = Helligkeitswerte, 3 = RGB) (Standard: 1) | |
header | title | // Titel der Animation, muss bei vorhandenem Header eingetragen werden |
description | // kurze Beschreibung der Animation (optional) | |
creator | // Die Software, die zur Erstellung verwendet wurde (optional) | |
author | // Name des Autors (optional) | |
// Emailadresse des Autors (optional) | ||
url | // Homepage (optional) | |
loop | // Animation wiederholen (optional) |
frame | // Ein Frame enthält die vom height-Attribut angegebene Anzahl von row-Tags. Das einzige Attribut dieses Tags ist duration und gibt die Zeit, die das Bild sichtbar ist in Millisekunden an. |
row | // Im row-Tag wird jeweils eine Pixelzeile beschrieben. Der Farbwert eines Pixels wird bei 1 bis 4 bpp mit einstelligen und bei 5 bis 8 bpp mit zweistelligen hexadezimalen Werten beschrieben. Bei mehr als einem Kanal werden mehrere Werte direkt hintereinander gesetzt. |
Bits
Bit-Wert | Maximale Anzahl von Graustufen (oder Farben) je Kanal |
Maximaler HEX-Wert im BML |
1 | 2 | 1 |
2 | 4 | 3 |
3 | 8 | 7 |
4 | 16 | F |
5 | 32 | 1F |
6 | 64 | 3F |
7 | 128 | 7F |
8 | 255 | FF |
Beispiel-Graustufen
<?xml version="1.0" encoding="UTF-8"?> <blm width="5" height="5" bits="7" channels="1"> <header> <creator>Blimp (version 1.3.8 date 2009-11-21)</creator> <title>Beispiel Graustufen</title> </header> <frame duration="100"> <row>2A2A2A2A2A</row> <row>5555555555</row> <row>2A2A2A2A2A</row> <row>5555555555</row> <row>0000000000</row> </frame> </blm>
Beispiel-RGB
<?xml version="1.0" encoding="UTF-8"?> <blm width="5" height="5" bits="8" channels="3"> <header> <creator>Blimp (version 1.3.8 date 2009-11-21)</creator> <title>Beispiel RGB</title> </header> <frame duration="100"> <row>FF0000FF0000FF0000FF0000FF0000</row> <row>FFFF00FFFF00FFFF00FFFF00FFFF00</row> <row>00FF0000FF0000FF0000FF0000FF00</row> <row>00FFFF00FFFF00FFFF00FFFF00FFFF</row> <row>000000000000000000000000000000</row> </frame> </blm>