Skip to content

Instantly share code, notes, and snippets.

@edmorais
Last active April 22, 2016 15:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save edmorais/59ef96359eecd1c9e9d1 to your computer and use it in GitHub Desktop.
Save edmorais/59ef96359eecd1c9e9d1 to your computer and use it in GitHub Desktop.
Abre imagem existente no computador e mostra-a. Abre nova imagem ao carregar no espaço.
/* __ ________ ___ ___ _______
/ / / __/ _/ |_ |/ _ < / __/
/ /___\ \_/ / / __// // / /__ \
/____/___/___/ /____/\___/_/____/
Aula de 29/05/2015:
Abre imagem existente no computador e mostra-a. Abre nova imagem ao carregar no espaço.
Por Eduardo Morais / FBAUP - www.eduardomorais.pt/fbaup/
*/
/*
Declarações de variáveis:
*/
PImage imagem; // imagem
/*
Função setup():
Executada automaticamente no início do programa:
*/
void setup() {
size(800,600);
background(128);
// inicia uma caixa de diálogo, com o texto do primeiro parametro.
// o segundo string contém o nome da função a chamar quando o utilizador escolher:
selectInput("Por favor escolha uma imagem:", "abreImagem");
}
/*
Função abreImagem():
Função chamada ('callback') quando o utilizador escolhe um ficheiro -
gerando automaticamente um objecto de tipo File.
*/
void abreImagem(File ficheiro) {
if (ficheiro == null) {
// se o utilizador tiver cancelado, repete:
println("O utilizador cancelou.");
setup();
} else {
// senão, tudo ok:
// a função .getAbsolutePath() dá-nos a localização completa do ficheiro:
imagem = loadImage(ficheiro.getAbsolutePath());
// vamos redimensionar a imagem proporcionalmente para caber na janela:
if (imagem.width > width) {
imagem.resize(width, 0); // 0 = proporcional
}
if (imagem.height > height) {
imagem.resize(0, height); // 0 = proporcional
}
}
}
/*
Função draw():
Executada repetidamente a cada 'frame'/fotograma de animação.
*/
void draw() {
background(128);
// se a imagem existir ('não for nula'):
if (imagem != null) {
// vamos mostrar a imagem, centrada:
image(imagem, (width-imagem.width)/2, (height-imagem.height)/2);
}
}
/*
Função keyPressed():
Executada sempre que carregamos numa tecla:
*/
void keyPressed() {
// barra de espaço:
if (key == ' ') {
imagem = null;
setup();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment