---
title: "Exportar a diferentes formatos"
---

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

# Mapa de bits (PNG)

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

## Modo estático

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

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

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

## 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)

```java
// 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:

```java
// 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() ) );
```


# 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:

```java
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](https://processing.org/reference/libraries/svg/index.html)

# Video

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

## 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.

```java
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`.

## 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.

* Ve al menú *Herramientas -> Creador de películas* (*Tools -> Movie Maker*).
* Agrega tu carpeta de cuadros exportados en el formulario correspondiente.
* Configura los parámetros del video que desees: dimensiones e imágenes por segundo (60)
* Opcionalmente agrega algún archivo de sonido
* Crea el archivo de video, que será tipo `.mov`, escogiendo en dónde guardarlo

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