Processamento de Imagem com Processing

Olá pessoas!

Continuando o artigo anterior que trata de arte digital com a ferramenta Processing, mostrarei hoje algumas experiências com processamento de imagem. E para isso utilizarei uma foto minha.

No site oficial há um tutorial intitulado "Imagens and Pixels" que te guia nos seus primeiros passos com processamento de imagens.

Primeiros códigos

O primeiro passo para realizar o processamento de imagens é carregar uma imagem a seu gosto para que possamos manipulá-la. Para isso há um código minimamente necessário mostrado a seguir:
 
PImage img;  // Declarando uma variável do tipo Imagem
 
void setup() {
  size(550, 505); // O comando "size" define o tamanho da janela de exibição do resultado
  img = loadImage("eu.jpg"); // Carregando em img uma nova instância da imagem "eu.jpg"
}
 
void draw() {
  background(0);
  image(img,0,0, 550, 505); // Desenhando a imagem com o mesmo tamanho da tela
}

O código acima carrega uma foto minha que se encontra no diretório "data" do projeto. Ao executar o código acima imagem é exibida:

Variação de brilho, transparência, e cor

O Brilho

A função que controla o brilho das imagens no processing é a "tint()" que recebe como parâmetro um número que varia de 0 (preto) a 255 (brilho natural).
Vamos reduzir o brilho pela metade, ou seja, aproximadamente 123:
void draw() {
  background(0);
  image(img,0,0, 550, 505);
  tint(127); // <-- Brilho reduzido!
}
O resultado é uma imagem mais escura:
 

A Transparência (Opacidade)

A função tint() possui sobrecargas de implementação, ou seja, a mesma função possui mais de uma funcionalidade de acordo com o número de parâmetros informaados. Para manipular a transparência é preciso informar para a função um segundo método que define a opacidade da imagem. Vamos manter o brilho em seu valor normal de 255 e agora vamos reduzir em 50% a opacidade da imagem:
void draw() {
  background(0);
  image(img,0,0, 550, 505);
  tint(255, 127); // <-- Brilho normal, e opacidade reduzida em 50%!
}

O resultado é uma imagem mais transparente:

A Cor

Para manipular a cor da imagem é preciso informar para a função tint 3 parâmetros, que agora representarão as tonalidades RGB:  Vermelho (Red), Verde (Green) e Azul (Blue).
Para este teste vamos deixar a foto com uma tonalidade mais amarelada, e para isso vamos especificar 100 para red, 255 para green, e 100 para blue:
 
void draw() {
  background(0);
  image(img,0,0, 550, 505);
  tint(100, 255, 100); // <-- Valorização do 2º parâmetro: verde
}

O resultado é uma imagem mais esverdeada: