Miguel Angel Adofacci - Muestreo y Trazo

De Casiopea



TítuloMuestreo y Trazo
AsignaturaImagen Escrita
Del CursoImagen Escrita 2017
CarrerasDiseño Industrial
5
Alumno(s)Miguel Angel Adofacci

Pestaña Programa


import processing.pdf.*;

PImage foto;
PFont font;
String[] code;

/*
 Al exportar un PDF, Processing translada 
 las unidades de pixeles a puntos tipográficos.
 
 1 pt = 0.0352778 cm
 1 cm = 28.346438837 pt
 
 */
float margenIzquierda = 120;
float margenArriba  = 50;    
float margenDerecha = 120;    
float margenAbajo   = 100;    
float escala;

//márgenes y escala para la imagen dentro del pdf
void setup() {

  foto = loadImage("bowie.jpg");   // se carga la imagen
  size(554, 779, PDF, "bowie-trazo.pdf");   // tamaño del PDF

  // cálculos para escalar desde la imagen hacia el pincel

  float ancho = width - (margenIzquierda + margenDerecha);
  escala = ancho/(float)foto.width;

  noLoop(); // la función draw() no se repite
  background(255);

  //Tipografía
  font = createFont("Courier", 6);
  textFont(font, 6);

  code = loadStrings("Trazo.pde");
  colorMode(RGB, 255); // cambio del modo de color HSB = (Hue) Croma, Saturación y Brillo
  strokeCap(ROUND);
}



void draw() {

  float spacer = 4; // el espaciador del muestreo

  // muestreo e impresión del pincel
  for (int y = 0; y < foto.height; y += spacer) {
    for (int x = 0; x < foto.width; x += spacer) {

      // obtengo el color
      color c = foto.get(x, y);

      // construyo el trazo
      float plotX = random(3, spacer) + map(x, 0, foto.width, margenIzquierda, width-margenDerecha);
      float plotY = random(3, spacer) + map(y, 0, foto.height, margenArriba, margenArriba + (foto.height * escala));

      trazo(plotX, plotY, c, spacer/4 );
    }
  }
  printCode();
  println("Está listo, abre el pdf");
  exit();
}
//Función para imprimir el código
void printCode() {
  fill(0);
  float interlinea = 0;
  for (int i = 0; i < code.length; i++) {
    // escribo cada línea de código en la pantalla
    text(code[i], width/5, 1.5 * margenArriba + foto.height * escala + interlinea);
    interlinea += 11;
  }
}


Pestaña Trazo


void trazo(float x, float y, color c, float amp) {
  float ancho = map(red(c), 0, 255, 3, 5);   // ancho
  float trans = map(blue(c), 0, 255, 100, 0); // transparencia 
  float largo = map(green(c), 0, 255, 3, 5); // largo

  int trazos = round(map((red(c) + green(c) + blue(c))/3, 0, 255, 30, 1));
  for (int i = 0; i <= trazos; i++) {
    pushMatrix();
    {
      translate(x + random(-amp * .3, amp * .3), y + random(-amp * .3, amp * .3));
      stroke( red(c), green(c) * 1.1, blue(c) * 1.1, trans);
      strokeWeight(random(0.5, amp*2));
      float localy = random(-amp, amp); 
      quad(-largo - random (-amp, amp), (localy * 1.1), //p1
        random (-amp, amp), localy, //p2
        (random (-amp, amp) * 1.1), (localy* 1.1) + random (-amp, amp), //p3
        (-largo - random (-amp, amp) *1.1), localy + random (-amp, amp)); //p4
    }
    popMatrix();
  }
}




The URL or file path given does not exist.