E aê, galera. Estou desenvolvendo uma aplicação que serve para retornar o nome de uma cor para o usuário, baseado no RGB de uma imagem qualquer. Só que estou tendo uns probleminhas prá isso.
Comecei criando um arquivo de texto contendo os dados que vou precisar usar. Esse arquivo se chama “color.properties” e dentro dele esta contida uma lista com várias cores, declaradas desta maneira:
255;117;24 = Abóbora
0;255;255 = Água
127;255;212 = Água-marinha
102;205;170 = Água-marinha média
227;38;54 = Alizarim
255;255;0 = Amarelo
.
.
.
O campo chave representa o RGB da cor. Está separado por “;” pois na aplicação precisarei fazer um split desses valores (acho que não tem problema o campo chave com “;”, neh? A property lê tudo como string…). Aí leio esse arquivo utilizando o load, desta maneira:
File file = new File("color.properties");
props = new Properties();
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
//le os dados que estao no arquivo
props.load(fis);
fis.close();
}
catch (IOException ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
}
Até aqui sem problemas. O problema está aqui: eu pego o RGB separado, formato ele de acordo com as chaves da Property mas simplesmente não retorna nada. É como se a Property estivesse vazia :? … Esse é o código que estou usando prá isso (ps.: não estranhem o bando de showMessageDialog… é só prá testes hehehe). Reparem nos comentários onde tento explicar um pouco o que estou fazendo:
[code]//pega o rgb no ponto em que o cursor estiver
//teste feito para a cor Amarela RGB = 255 255 0
int r = getR(imagem.getRGB(x, y)); //R = 255
int g = getG(imagem.getRGB(x, y)); //G= 255
int b = getB(imagem.getRGB(x, y)); //B = 0
JOptionPane.showMessageDialog(null, r + " " + g + " " + b); //imprimiu na tela 255 255 0
//formato de acordo com a classe properties
nome_cor_format = r + ";" + g + ";" + b; //combinar com a chave
JOptionPane.showMessageDialog(null, nome_cor_format); //imprimiu na tela 255;255;0. Esse valor tem na property tbm...
//pego o nome da cor na classe properties
nome_cor = props.getProperty("color.nome_cor_format");
JOptionPane.showMessageDialog(null, nome_cor); //desta vez não mostrou nada na tela.[/code]
Além de não retornar nada não dá nenhuma mensagem de erro prá eu saber qual é o problema… Alguém poderia me ajudar? O que pode ser isso?
Desde já agradeço,
[]s