Boa noite pessoal!!
Estou fazendo um programa em JAVA que abre imagens do meu PC e preciso que ele varra os pixels dessa imagem, identifique o RGB e substitua algumas cores. Seria um aplicativo para daltônicos. Que altere a tonalidade de verde por exemplo, ou até troque por outra cor para facilitar a visualização de pessoas com essa limitação.
Não domino muito a programação, por isso peço paciência de vcs comigo e agradeço desde já. Muito obrigado pelo espaço.
Você pode carregar sua imagem em um BufferedImage e percorrer os pixels com getPixel(), e alterar com setPixel(). Com Java2D, existem métodos que facilitam essa manipulação também. Veja por exemplo: https://docs.oracle.com/javase/tutorial/2d/index.html
Abraço.
Exemplo hipotético:
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.imageio.ImageIO;
public class TrocadorCores {
public static void main(String[] args) {
try {
TrocadorCores trocadorCores = new TrocadorCores();
trocadorCores.executar();
} catch (Throwable t) {
t.printStackTrace();
}
}
private void executar() throws IOException {
BufferedImage imagem = ImageIO.read(new FileInputStream("/caminho-da-imagem"));
int largura = imagem.getWidth();
int altura = imagem.getHeight();
for (int x = 0; x < largura; x++) {
for (int y = 0; y < altura; y++) {
int pixel = imagem.getRGB(x, y);
pixel = trocarCor(pixel);
imagem.setRGB(x, y, pixel);
}
}
ImageIO.write(imagem, "formato", new FileOutputStream("/caminho-da-imagem"));
}
private int trocarCor(int corOriginal) {
int corTrocada = // aqui você implementa as regras para trocar a cor de um pixel
return corTrocada;
}
}
Muito obrigado pelo exemplo!!
Vou trabalhar em cima desse código.
1 curtida