L’autoritratto “Crisi Script”


Il concetto che sta dietro questo autoritratto è che il mondo dell’immagine e quello dello script si incontrano-scontrano: l’immagine fissa appartiene alla categoria dell’interazione che possiamo definire passiva (un livello interiore), mentre lo script è attivo, dinamico, creato appositamente per interagire (un possibile autoritratto interattivo).
Lo script è crisi in quanto apre le porte ad un nuovo modo di rappresentare, ma allo stesso tempo l’immagine è crisi per lo script (tornando all’autoritratto) perché lo limita, lo confina ad una mera sequenza statica di pixel.

L’immagine è stata completamente creata con Processing, un software di scripting che opportunamente settato permette la modica e il salvataggio di immagini raster.
Lo script elabora i pixel di una immagine b/n su sfondo bianco: quando sono bianchi, scrive a video il codice sorgente con colore verde, altrimenti scrive “crisi script” assegnando il colore del pixel corrispondente ad ogni lettera.
[DDET Vedi il codice sorgente]

PImage img; //Inizializza l'immagine
String scritta[]; //Definizione della stringa
String scritta2=("crisi script "); 

void setup() {
  img = loadImage("Immagine.jpg"); //Carica immagine
   size(img.width, img.height);  //Dim. Finestra con  dim. immagine
   textSize(6); //Dimensione testo a video
   scritta=loadStrings("Script.txt"); //Carica file di testo nella stringa
 }

void draw() {
 background(255); //Sfondo
 loadPixels(); //Carica pixel 
 img.loadPixels();  //Carica pixel immagine

 for (int y = 0, h=0; (y < img.height && h < scritta.length) ||  (y < img.height && h==scritta.length); y+=textAscent(), h++) { //Ciclo For Verticale: Ad ogni ciclo aumenta della dimensione del testo fino a fine altezza img & fine testo
    if (h==scritta.length) // Se la riga è l'ultima
       h=0; //Ricarica il testo
    for (int x = 0, g=0, i=0; x < img.width; x++, g++,i++){ //Ciclo For Orizzontale: fino a fine larghezza img 
      int loc = x + y*width; //Localizza la posizione del pixel
       color c=img.pixels[loc]; //Carica in memoria il colore del pixel
       
       
      if ( c==color(255) && g

[/DDET]