jardínBit

Exportar a diferentes formatos

Lo que creamos en Processing puede salir del lienzo en diferentes formatos descritos a continuación.

1 Mapa de bits (PNG)

La función save() o saveFrame() nos permiten guardar

1.1 Modo estático

En este modo, podemos concluir nuestro sketch con una de estas funciones, y exit():

size(500, 500);
background(0);
stroke(255);
ellipse( width/2, height/2, 100, 100);

save("imagen.png");
exit();

1.2 Modo dinámico

Al utilizar setup() y draw(), conviene utilizar algún mecanismo para solo guardar el cuadro de animación que queremos, y no toda la secuencia (ve abajo en Video para ver cómo conviene guardar toda la secuencia)

// guarda imagen al dar click en el lienzo

void setup(){
  size( 500, 500 );
}
void draw(){
  // dibuja aquí
}

void mousePressed(){
  // guarda un archivo donde #### se reemplaza por el número de frame
  saveFrame("frame-####.png");
}

En ocasiones, en vez de querer utilizar el número de frame, conviene más guardar el archivo con la fecha y hora de captura. En esos casos, reemplazaríamos saveFrame() con:

// guarda un archivo en formato captura-YYYYMMDD-HHmmss.png
save( String.format("captura-%04d%02d%02d-%02d%02d%02d.png", year(), month(), day(), hour(), minute(), second() ) );

2 Vectores (SVG)

Podemos exportar en .svg para utilizar las figuras en software de dibujo con vectores, reemplazando la función size() por una con más argumentos:

import processing.svg.*;

void setup() {
  size(400, 400, SVG, "archivo.svg");
}

void draw() {
  // dibuja
  noFill();
  ellipse(width/2, height/2, 150, 150);
  ellipse(width/2, height/2, 50, 50);

  // Termina y cierra el programa
  exit();
}

Hay más formas de exportar en SVG que pueden verse en SVG  Libraries  Processing.org

3 Video

La forma para capturar video desde Processing consiste en primero exportar los cuadros (frames) de animación, y luego convertirlas a un video.

3.1 Exporta frames

Parecido a lo mostrado arriba para mapa de bits, pero aquí se guardan todas las frames. Toma en cuenta que este proceso puede alentar a tu sketch; la recomendación es que primero lo desarolles, y ya que esté listo entonces lo grabes.

El if() que se incluye hace que solo se guarden las primeras 300 frames; lo puedes quitar o modificar si así lo deseas.

void setup(){
  size(500, 500);
}

void draw(){
  // dibuja aquí


  // si estamos en las primeras 300 frames
  if(frameCount <= 300 ){
    // guarda frame
    saveFrame("frames/frame-####.png");
  }
}

El formato .png tarda más en guardarse pero las imágenes pesan menos. Si prefieres más rapidez al guardar, usa el formato .tif o .tga.

3.2 Convierte a video

Los cuadros de animación que exportaste, reproducidos a 60 frames por segundo, corresponderán a la velocidad de tu sketch.

Processing tiene una herramienta incluida para convertir un conjunto de imágenes exportadas de esta forma, a un video.

Nota que también puedes usar otras herramientas de video para ensamblar estos cuadros de animación.