Hasta ahora hemos usado Processing para crear imágenes, pero aún no podemos hacer gran cosa con ellas: ni guardarlas, ni exportarlas, ni insertarlas en otros documentos… Para ello necesitamos guardarlas como imagen. En realidad es muy sencillo, pero vamos a aprovechar para ver algunos métodos para disparar la acción de guardar la imagen.
Es tan simple como esto:
save("nombre.extensión");
P5 puede guardar imágenes en los siguientes formatos:
* TIFF (.tif)
* TARGA (.tga)
* JPEG (.jpg)
* PNG (.png)
Para indicarle cuál debe usar basta añadir al nombre de archivo la extensión adecuada.
Ejemplo 1
El uso más sencillo. Creamos la imagen y la guardamos, todo de una tacada.
//programamos una imagen cualquiera
ellipse(width/2, height/2, 80, 80);
//...y la guardamos como JPEG
save("imagen.jpg");
Ejemplo 2
Creamos una animación y guardamos todos los fotogramas.
float n = 0;
void setup(){
size(300,300);
background(#336699);
stroke(255);}
void draw(){
point(width/2 + cos(n) * 100, height/2 + sin(n) * 100);
//guardamos cada imagen de la secuencia
save(n + "imagen.jpg");
n = n + 0.05;
}
En este ejemplo usamos la variable ‘n’ para dar diferentes nombres a cada imagen, o cada una sobrescribiría la anterior.
Ejemplo 3
Guardamos una imagen al hacer clic con el ratón
//dentro de la función draw() escribimos:
if (mousePressed == true){
save("nombre_de_la_imagen.jpg");
}
Ejemplo 4
Guardamos al presionar cualquier tecla.
//creamos una animación cualquiera
void draw(){
point(random(width), random(height));
}
//y usamos la función keyPressed() para evaluar si se pulsa una tecla
void keyPressed() {
save("imagen.jpg");
}
Ejemplo 5
Guardamos al presionar una tecla concreta.
//creamos una animación cualquiera
void draw(){
point(random(width), random(height));
}
//y usamos la función keyPressed() para evaluar si se pulsa una tecla
void keyPressed() {
//la imagen se guarda si se presiona la tecla 's'
if(key == 's'){
save("imagen.jpg");
}
}
En este último ejemplo es posible programar varias teclas para guardar imágenes con diferentes nombres, y así guardar varios momentos de una misma animación.