e ae galera nesse topico vamos aprender como deixar uma imagem mais cinzenta sem cores, vamos fazer isso programando esse efeito na mão, vou utilizar a linguagem python com modulo PIL embora possa ser feito em qualquer outra linguagem de sua preferencia. A imagem que vou usar nesse tutorial é da Last Order do anime To Aru diz misaka misaka '-'
para começar importamos o modulo PIL (é necessario que esteja instalado no seu sistema, não vou abordar a instalação dele)
com o modulo importado basta a gente carrega a imagem desejada usando o metodo open, passamos como argumento para ele o local da imagem (no meu caso vou usar uma imagem fixa, o recomendado é que esse local seja passado pelo usuario como um input ou alguma coisa desse tipo)
agora precisamos retornar a largura e altura da imagem para conseguir ler cada pixel dela, para isso usamos o atributo size que retorna uma tupla com largura e altura
vamos criar um loop para correr cada pixel da largura e dentro dele criamos outro loop para correr cada pixel da altura, com isso vamos correr pixel a pixel da imagem
dentro do segundo loop pegamos a cor do pixel com o metodo getpixel, nesse metodo passamos como argumento a posição daquele pixel para ter uma tupla como retorno a cor em formato RGB
uma das formas de deixar essa imagem mais cinza seria manipular a cor alternando o mais proximo entre o preto e o branco, uma outra forma ate mais simples seria deixar as 3 cores principais do RGB com o mesmo valor (o legal seria tirar uma media dos 3 valores RGB e atribuir o resultado aos 3)
para a gente atribuir aquela cor naquele pixel usamos putpixel, passamos como argumento a posição e por fim a nova cor
é possivel exibir a imagem com o metodo show ou podemos salvar ela com o metodo save e exibir em algum programa
bom galera é isso \o
by kodo no kami
para começar importamos o modulo PIL (é necessario que esteja instalado no seu sistema, não vou abordar a instalação dele)
- Código:
#!/usr/bin/python3
from PIL import Image
com o modulo importado basta a gente carrega a imagem desejada usando o metodo open, passamos como argumento para ele o local da imagem (no meu caso vou usar uma imagem fixa, o recomendado é que esse local seja passado pelo usuario como um input ou alguma coisa desse tipo)
- Código:
#!/usr/bin/python3
from PIL import Image
img = Image.open("last.jpg")
agora precisamos retornar a largura e altura da imagem para conseguir ler cada pixel dela, para isso usamos o atributo size que retorna uma tupla com largura e altura
- Código:
#!/usr/bin/python3
from PIL import Image
img = Image.open("last.jpg")
tam = img.size
vamos criar um loop para correr cada pixel da largura e dentro dele criamos outro loop para correr cada pixel da altura, com isso vamos correr pixel a pixel da imagem
- Código:
#!/usr/bin/python3
from PIL import Image
img = Image.open("last.jpg")
tam = img.size
contx = 0
while contx < tam[0]:
conty = 0
while conty < tam[1]:
conty += 1
contx += 1
dentro do segundo loop pegamos a cor do pixel com o metodo getpixel, nesse metodo passamos como argumento a posição daquele pixel para ter uma tupla como retorno a cor em formato RGB
- Código:
#!/usr/bin/python3
from PIL import Image
img = Image.open("last.jpg")
tam = img.size
contx = 0
while contx < tam[0]:
conty = 0
while conty < tam[1]:
cor = img.getpixel((contx,conty))
conty += 1
contx += 1
uma das formas de deixar essa imagem mais cinza seria manipular a cor alternando o mais proximo entre o preto e o branco, uma outra forma ate mais simples seria deixar as 3 cores principais do RGB com o mesmo valor (o legal seria tirar uma media dos 3 valores RGB e atribuir o resultado aos 3)
- Código:
#!/usr/bin/python3
from PIL import Image
img = Image.open("last.jpg")
tam = img.size
contx = 0
while contx < tam[0]:
conty = 0
while conty < tam[1]:
cor = img.getpixel((contx,conty))
media = (cor[0] + cor[1] + cor[2]) // 3
cor = (media,media,media)
conty += 1
contx += 1
para a gente atribuir aquela cor naquele pixel usamos putpixel, passamos como argumento a posição e por fim a nova cor
- Código:
#!/usr/bin/python3
from PIL import Image
img = Image.open("last.jpg")
tam = img.size
contx = 0
while contx < tam[0]:
conty = 0
while conty < tam[1]:
cor = img.getpixel((contx,conty))
media = (cor[0] + cor[1] + cor[2]) // 3
cor = (media,media,media)
img.putpixel((contx,conty),cor)
conty += 1
contx += 1
é possivel exibir a imagem com o metodo show ou podemos salvar ela com o metodo save e exibir em algum programa
- Código:
#!/usr/bin/python3
from PIL import Image
img = Image.open("last.jpg")
tam = img.size
contx = 0
while contx < tam[0]:
conty = 0
while conty < tam[1]:
cor = img.getpixel((contx,conty))
media = (cor[0] + cor[1] + cor[2]) // 3
cor = (media,media,media)
img.putpixel((contx,conty),cor)
conty += 1
contx += 1
img.show()
img.save("last_gray")
bom galera é isso \o
by kodo no kami