Mariana valenzuela t8 imagen pixelada

De Casiopea

Archivo:Humopixe.pdf



Títulomariana valenzuela T8
Tipo de ProyectoProyecto de Curso
Palabras Clavetarea 8
Del CursoImagen Escrita 2012,
CarrerasArquitectura
Alumno(s)Mariana valenzuela
ProfesorHerbert Spencer
 
/*

 Imagen Escrita 2012: Construcción de un trazo (algoritmo pictórico de la luz y el color) 

*/

import processing.pdf.*;

PImage humo;  // la foto: el encuadre, la escena, el paisaje
PFont font;      // la fuente tipográfica
String[] code;   // el texto del código


/*
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 = 20; 
float margenArriba  = 20;
float margenDerecha = 20;
float margenAbajo   = 20;
float escala;

void setup() {

  humo = loadImage("humo.jpg");   // se carga la imagen, se "construye" el objeto PImage ritoque
  size(609, 765, PDF, "humopixe.pdf");  // tamaño carta

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

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

  noStroke();
  noLoop(); 
  background(255);
  
  font = createFont("Book Antigua", 12); // construyo la tipografía a partir de una fuente de sistema
  textFont(font, 12);

  code = loadStrings("tu.pde"); // cargo el código "trazo" (el pincel)
}



void draw() {

  float spacer = 3;

  // muestreo regular desde la foto, esto se puede modificar....
  for (int y = 4; y < humo.height; y += spacer) {
    for (int x = 30; x < humo.width; x += spacer) {

      // obtengo el color
      float plotX = map(x, 10, humo.width, margenIzquierda, width+ margenDerecha*2);
      float plotY = map(y, 10, humo.height, margenArriba, margenArriba + (humo.height * escala));
      color c = humo.get(x/7, y+7);


      trazo(plotX, plotY, c, height/20);
    }
  }
 printCode();
  println("----->PDF done!");
  exit();
 
}

void printCode() {
  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/4, margenArriba*4 + humo.height * escala + interlinea);
    interlinea += 15;
  }
}

--------------------------- separacion codigo trazo----------------------------------------


void trazo(float x, float y, color c, float random) {
  fill(c);
    
    rect(x, y, map(brightness(c), 7, 255, 50, random), 
    map(brightness(c), 0, 255, 5, random));
    
}