Blinkenlights Markup Language

Blinkenlights Markup Language

thinkpad Le Blinkenlights Markup Language est le format de fichier dans lequel ArcadePaint sauvegarde ses images et animations. C'est un format basé sur XML. Nous détaillons ce format de fichier ici, de manière à ce que ceux qui sont intéressés par la création directe de fichiers dans ce format puissent le faire. Par contre pas besoin de cette information pour utiliser ArcadePaint.

La connaissance de l'XML se révèlera en revanche une aide précieuse.

La DTD (Document Type Definition) peut être trouvée ici. (Si vous ne savez pas ce qu'est une DTD, c'est pas grave, ignorez la sans danger): http://www.blinkenlights.de/dtd/bml.dtd

Structure du Document

Chaque Blinkenlights Movie débute par l'élément de document <blm>. Il contient (de manière optionnelle) un élément <header> et un ou plusieurs éléments <frame> . Le <header> contient exclusivement des meta informations qui ne sont pas nécessaires pour la diffusion de l'animation. Les éléments <frame> contiennent par contre toute l'information des pixels.

L'élément de document donne le hauteur et la largeur, ainsi que la profondeur des couleurs (bits) ainsi que le nombre de couleurs (channels). L'installation Arcade fixe toujours la valeur "channels" à 1 (à cause de sa nature en niveaux de gris). La valeur des "bits" peut varier: 1 (monochrome), 2-8 (4,8,16,32,64,128,256 niveaux de gris).

Attributs de <blm>

widthLargeur de la matrice en pixels
heightHauteur de la matrice en pixels
bitsProfondeur de couleur en bits (1 = monochrome)
channelsNombre de canaux de couleurs. Pour Arcade c'est toujours 1 (luminosité seulement). Pour les images RGB, la valeur est 3 (rouge, vert et bleu).

Éléments du <header>

titleLe titre de l'animation
descriptionPetite description de l'animation en 1 ou 2 phrases. (optionnel)
creatorLogiciel utilisé pour créer le fichier d'animation (optionnel)
authorNom de l'auteur (optionnel)
emailadresse e-mail de l'auteur (optionnel)
urlpage web relative à l'auteur/animation (optionnel)

Éléments de <frame>

Chaque "frame" contient autant d'éléments <row> , que spécifiés par l'attribut height. L'attribut duration spécifie le temps pendant lequel l'image est visible en millisecondes.

Structure de données pour une ligne (row)

Chacune des lignes décrit la valeur de la couleur des pixels en notation hexadécimale. Si la profondeur de couleurs est entre 1 et 4, un chiffre hexadécimal est utilisé par valeur de couleur (0-f). Si la profondeur de couleurs est entre 5 et 8, deux chiffres hexadécimaux sont utilisés par valeur de couleur (00-ff).

Par pixel, pour chaque canal suivent donc une valeur de couleur, une après l'autre. Dans une image RGB avec channels="3" il y aura 3 valeurs de couleur dans la séquence.

Exemple

<?xml version="1.0" encoding="utf-8"?>

<blm width="26" height="20" bits="4" channels="1">

    <header>

        <title>Alfred Hitchcock</title>

        <description>Un portrait du grand maître du suspense</description>

        <creator>ArcadePaint</creator>

        <author>J. Random Hacker</author>

        <email>my@email.com</email>

        <url>http://my.home.page/</url>

    </header>

    <frame duration="200">

        <row>00000001369ceec95100000000</row>

        <row>0000127acdeffffffe94000000</row>

        <row>0015569bcdeeeeffffffb50000</row>

        <row>01421465779eeeedccdefeb100</row>

        <row>0110026bdd77deddeeedeed300</row>

        <row>000011136aa5ced979bcdcc200</row>

        <row>0000688acb65bddeddeefca100</row>

        <row>000028abca11468deedddb8200</row>

        <row>0000247bc30248acddcccbc700</row>

        <row>0000025ba668abcbcdcbbad600</row>

        <row>00000069525779baacca99c400</row>

        <row>0000002850013557baaa966100</row>

        <row>00000003212469baaa98710000</row>

        <row>00000000000001354368300000</row>

        <row>00000000000001377567100000</row>

        <row>000010000000169b98ae400000</row>

        <row>00001100000002699dff700000</row>

        <row>000001225887203affffb10000</row>

        <row>0000469bdee60012afffb10000</row>

        <row>00003cadfffa118eceef710000</row>

    </frame>

</blm>

	

Extension de fichiers

Le nom d'un fichier Blinkenlights Markup Language doit se terminer en ".bml".