Voir l’article "créer un xml"
Ce code génère une structure comme ceci
<?xml version="1.0" encoding="utf-8"?>
<EcranMatrix>
<Bytes>
<int>73</int>
<int>71</int>
<int>69</int>
<int>70</int>
<int>71</int>
<int>71</int>
Des images stockées pixel par pixel dans un tag appelé "Bytes" lui-même à l’intérieur d’un tag appelé "EcranMatrix". On accède aux données comme suit.
// Lecteur de fichier xml
XMLElement xml;
int numframes;
int compteur=0;
float ratiox;
float ratioy;
boolean play=true;
void setup() {
size(640, 400);
// calcul de la taille des pixels
ratiox=width/44.0;
ratioy=height/28.0;
// vitesse de lecture : 15 fames par secondes
frameRate(15);
xml = new XMLElement(this, "test.xml");
numframes=xml.getChildCount();
noStroke();
}
void draw() {
// recuperer le contenu du tag "EcranMatrix"
XMLElement kid=xml.getChild(compteur);
// recuperer le contenu du tag "Bytes"
XMLElement bytes=kid.getChild(0);
// maintenant, recuperer les pixels dans les tags "int"
// et afficher la grille de 44 * 28
for (int y=0;y<28;y++) {
for (int x =0; x<44;x++) {
XMLElement lepixel = bytes.getChild((y*44)+x);
String contenu = lepixel.getContent();
fill(int(contenu));
rect(x*ratiox, y*ratioy, ratiox, ratioy);
}
}
// en boucle
compteur++;
if (compteur >= numframes) {
compteur=0;
}
}
// arreter ou relancer avec la barre d'espacement
void keyPressed() {
if (key==' ') {
if (play==false) {
play=true;
loop();
}
else {
play=false;
noLoop();
}
}
}