Estou desenvolvendo uma aplicação onde preciso converter uma imagem colorida para preto e branco primeiro. Logo apos preciso converter onde tem branco para preto e onde tem preto para branco. Encontrei uma função aqui no GUJ que faça a conversão do colorido para o preto e branco. Minha segunda missão é converter onde é preto para branco e onde é branco para preto.
Observei que o @ViniGodoy tem muito conhecimento nesse assunto. Alguem poderia me ajudar?
A primeira função ficou assim:
public static BufferedImage image2BlackWhite(BufferedImage image1) {
int w = image1.getWidth();
int h = image1.getHeight();
byte[] comp = { 0, -1 };
IndexColorModel cm = new IndexColorModel(2, 2, comp, comp, comp);
BufferedImage image2 = new BufferedImage(w, h,
BufferedImage.TYPE_BYTE_INDEXED, cm);
Graphics2D g = image2.createGraphics();
g.drawRenderedImage(image1, null);
g.dispose();
return image2;
}
public static BufferedImage invertedBW(BufferedImage source){
int w = source.getWidth();
int h = source.getHeight();
BufferedImage result = new BufferedImage(w,h, BufferedImage.TYPE_INT_ARGB);
int originalColor;
Color newColor;
for (int i = 0; i < w; i++){
for (int j = 0; j < h; j++){
originalColor = source.getRGB(i, j);
newColor = originalColor > 0 ? Color.BLACK : Color.WHITE;
result.setRGB(i, j, newColor.getRed(), newColor.getGreen(), newColor.getBlue());
}
}
return result;
}