Trocar cores de imagens

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