Last active
April 22, 2016 15:03
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* __ ________ ___ ___ _______ | |
/ / / __/ _/ |_ |/ _ < / __/ | |
/ /___\ \_/ / / __// // / /__ \ | |
/____/___/___/ /____/\___/_/____/ | |
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