Paula Nicole Castillo: 8vo Proyecto - Imagen Impresionista
De Casiopea
Título | Imagen impresionista - Patos parque japones |
---|---|
Tipo de Proyecto | Proyecto de Curso |
Palabras Clave | tarea 8 |
Período | 2012- |
Asignatura | Taller Inicial Común 1ª y 2ª Etapa, |
Del Curso | Imagen Escrita 2012, |
Carreras | Diseño Gráfico"Diseño Gráfico" is not in the list (Arquitectura, Diseño, Magíster, Otra) of allowed values for the "Carreras Relacionadas" property. |
Alumno(s) | Paula Nicole Castillo |
Profesor | Herbert Spencer |
Archivo:Proyecto8pincelimpresionista.pdf | |
URL | http://www.flickr.com/photos/descro/7391521794/in/photostream/lightbox/ |
Siguiendo el ejemplo entregado por el profesor Herbert se crea un nuevo tipo de pincel con la idea de seguir la intensión del puntillismo impresionista pero remarcando los colores de la imagen tratando de intensificarlos lo mas posible.
/* Imagen Escrita 2012: Construcción de un trazo (algoritmo pictórico de la luz y el color) */ import processing.pdf.*; PImage patos; // la foto: foto de patos parque japones 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 = 30; float margenArriba = 20; float margenDerecha = 20; float margenAbajo = 20; float escala; void setup() { patos = loadImage("patos.jpg"); // se carga la imagen, se "construye" el objeto PImage patos size(609, 765, PDF, "Proyecto8pincelimpresionista.pdf"); // tamaño carta // cálculos para escalar desde la imagen hacia el pincel float ancho = width - (margenIzquierda + margenDerecha); escala = ancho /(float)patos.width; noStroke(); noLoop(); background(255); font = createFont("Courier", 6); // construyo la tipografía a partir de una fuente de sistema textFont(font, 6); code = loadStrings("trazo.pde"); // cargo el código "trazo" (el pincel) } void draw() { float spacer = 5; // Reducción de spacer mejora la resolución de la imagen resultante int i = 1; boolean cir = true; // muestreo regular desde la foto, esto se puede modificar.... for (int y = 0; y < patos.height; y += spacer) { if (cir) { i = 0; } for (int x = 0; x < patos.width; x += spacer) { // obtengo el color float plotX = map(x, 0, patos.width, margenIzquierda, width-margenDerecha); float plotY = map(y, 0, patos.height, margenArriba, margenArriba + (patos.height * escala)); color c = patos.get(x, y); trazo(plotX, plotY, c, spacer, i); if (i==1) { i=0; } else { i=1; } } cir = cir == true ? false : true; } 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, 2 * margenArriba + patos.height * escala + interlinea); interlinea += 15; } } /*************************************** trazo ****************************************/ /* Paula Castillo */ void trazo(float x, float y, color c, float amp, int i) { fill(c); if(i == 2){ // con el rectangulo se le da intensidad al color destagando los lugares mas oscuros // se usa la saturacion para ello y le da un toque al color // lo que ayuda al pixeleado ya que la imagen es a contraluz rect(x-map(saturation(c), 0, 252, amp, 20)*sqrt(PI)/2*1/2*1/2, y-map(saturation(c), 20, 255, amp, 0)*sqrt(PI)/2*1/2*1/2, map(saturation(c), 0, 255, amp, 0)*sqrt(PI)/2*1/2, map(saturation(c), 0, 235, amp, 00)*sqrt(PI)/2*1/2); } else { // las elipses con el hue le dan intensidad al color lo recalca como es ellipse(x, y, map(hue(c), 0, 255, amp, 0)*1/2, map(hue(c), 0, 255, amp, 0)*1/2); }}