Problems with .svg libraries

Hello
I’m having some Problems withe the .svg library. I wanted to write a little code, which should export 15 .svg files. But its only exporting the last one. Is my Code broken or is the .svg exporter not able to export multiple .svg? I am new to coding and therefore maybe made a mistake.

Regards :slight_smile:

import processing.svg.*;
//import processing.pdf.*;

int screenX=100;
int screenY=100;
boolean [][] screen = new boolean[screenX][screenY];
final int farbeWeiss=0;
final int farbeSchwarz=1;
//                  Wert 0            Wert 1
color [] c = { color(255,255,255), color(0,0,0)};
int maxDateien=15;

//format
void setup () {
     size(210, 297);

 for(int dateiIndex=1; dateiIndex <= maxDateien; dateiIndex++){
   background(0);
   noStroke();

   setupPattern(dateiIndex);  

   noLoop();
   beginRecord(SVG, "zufallPixel_"+dateiIndex+".svg");

     //noLoop();
     //beginRecord(PDF, "zufallPixel_"+dateiIndex+".pdf");
 }
}

void draw()  {
 for(int y=0;y<screenY; y++){
 for(int x=0; x<screenX; x++){
     int mycolorindex = farbeWeiss; 
     // wenn Zellwert ist true setze die Farbe Schwarz
     if (screen[x][y])
          mycolorindex = farbeSchwarz;       
     fill(c[mycolorindex]);
     rect (x*5,y*5,5,5); 


   }
 }
}

 void setupPattern(int dateiNummer){  
   int pixelFarbe;
   int prozentsatz=dateiNummer*90/maxDateien;
   //  Prozentsatz = 90  so dass es nicht zu dunkel wird …
   //  für maxDateien = 15 max 
   //  DateiNummer     prozentsatz 
   //-----------------------------
   //  0  ---------------  0
   // 10  --------------- 60
   // 15  --------------- 90  

   for(int y=0;y<screenY; y++){
   for(int x=0;x<screenX;x++){
      pixelFarbe=farbeWeiss;

   // if ((random(0,2)+ random(0,(2*prozentsatz/100))) > 2)
     if (random(0,2) > 1)
        pixelFarbe=farbeSchwarz;

        screen[x][y]=(pixelFarbe==farbeSchwarz);

     }
   }
endRecord();
 }

I’m not very good at reading code, but I think its that in the void setup(){}you are running a loop that is drawing a background over every other svg

why are you calling noLoop() in the setup ?

import processing.svg.*;
//import processing.pdf.*;

int screenX=100;
int screenY=100;
boolean [][] screen = new boolean[screenX][screenY];
final int farbeWeiss=0;
final int farbeSchwarz=1;
//                  Wert 0            Wert 1
color [] c = { color(255,255,255), color(0,0,0)};
int maxDateien=15;

//format
void setup () {
     size(210, 297);

 
}

void draw()  {
  for(int dateiIndex=1; dateiIndex <= maxDateien; dateiIndex++){
   background(0);
   noStroke();

   setupPattern(dateiIndex);  

  // noLoop();
   beginRecord(SVG, "zufallPixel_"+dateiIndex+".svg");

     //noLoop();
     //beginRecord(PDF, "zufallPixel_"+dateiIndex+".pdf");
 
 for(int y=0;y<screenY; y++){
 for(int x=0; x<screenX; x++){
     int mycolorindex = farbeWeiss; 
     // wenn Zellwert ist true setze die Farbe Schwarz
     if (screen[x][y])
          mycolorindex = farbeSchwarz;       
     fill(c[mycolorindex]);
     rect (x*5,y*5,5,5); 


   }
 }
 endRecord();
 }
 noLoop();
}

 void setupPattern(int dateiNummer){  
   int pixelFarbe;
   int prozentsatz=dateiNummer*90/maxDateien;
   //  Prozentsatz = 90  so dass es nicht zu dunkel wird …
   //  für maxDateien = 15 max 
   //  DateiNummer     prozentsatz 
   //-----------------------------
   //  0  ---------------  0
   // 10  --------------- 60
   // 15  --------------- 90  

   for(int y=0;y<screenY; y++){
   for(int x=0;x<screenX;x++){
      pixelFarbe=farbeWeiss;

   // if ((random(0,2)+ random(0,(2*prozentsatz/100))) > 2)
     if (random(0,2) > 1)
        pixelFarbe=farbeSchwarz;

        screen[x][y]=(pixelFarbe==farbeSchwarz);

     }
   }

 }

try this