- crie uma aplicação que realize o envelhecimento de uma imagem, a sua escolha, a partir de três variáveis distintas de controle: quantidade de pixels alterados por ruído, quantidade de amarelo e quantidade de vermelho adicionados.
código:
Primeiramente são criados variáveis para a Imagem Original e para suas respectivas cópias.
Depois define-se as variáveis que serão utilizadas, pos para definir a posição do pixel e r,g,b para os canais de cores.
PImage imgOriginal; PImage imgCopia = createImage(300,400,RGB); PImage imgCopia2 = createImage(300,400,RGB); PImage imgCopia3 = createImage(300,400,RGB); PImage imgCopia4 = createImage(300,400,RGB); float r,g,b; int pos;
Depois é só acrescentar o efeito desejado em cada uma das cópias.
para o efeito de ruído, acrescenta-se um valor aleatório nos canais RGB.
for (int x = 0; x < 300; x++){ for(int y = 0; y < 400; y++){ r = red(imgOriginal.pixels[pos]) + random(50); g = green(imgOriginal.pixels[pos]) + random(50); b = blue(imgOriginal.pixels[pos]) + random(50); pos = y*300 + x; imgCopia.pixels[pos] = color(r,g,b); } }para o efeito de preto e branco, faz-se a media ponderada da quantidade de cada cor num pixel.
for (int x = 0; x < 300; x++){ for(int y = 0; y < 400; y++){ r = red(imgCopia.pixels[pos]); g = green(imgCopia.pixels[pos]); b = blue(imgCopia.pixels[pos]); pos = y*300 + x; float m = (0.3*r + 0.59*g + 0.11*b); imgCopia2.pixels[pos] = color(m,m,m); } }para o efeito avermelhado, aumenta-se o valor da cor vermelha.
for (int x = 0; x < 300; x++){ for(int y = 0; y < 400; y++){ r = red(imgCopia2.pixels[pos]); g = green(imgCopia2.pixels[pos]); b = blue(imgCopia2.pixels[pos]); pos = y*300 + x; imgCopia3.pixels[pos] = color (r + 50,g,b); } }para o efeito sépia, reduz-se a quantidade de azul da imagem.
for (int x = 0; x < 300; x++){ for(int y = 0; y < 400; y++){ r = red(imgCopia3.pixels[pos]); g = green(imgCopia3.pixels[pos]); b = blue(imgCopia3.pixels[pos]); pos = y*300 + x; imgCopia4.pixels[pos] = color (r,g,b - 50); } }
Depois é só chamar as imagens no draw.
void draw(){ image(imgOriginal,0,0); image(imgCopia,300,0); image(imgCopia2,600,0); image(imgCopia3,900,0); image(imgCopia4,1200,0); }
Resultado:


Nenhum comentário:
Postar um comentário