2012-03-18 22 views
6

Me gustaría convertir una imagen a 2 colores, en blanco y negro utilizando Java. Estoy usando el siguiente código para convertir a escala de grises:Convertir una imagen a 2 colores en Java

ColorConvertOp op = new ColorConvertOp(
      ColorSpace.getInstance(ColorSpace.CS_GRAY), null); 
    BufferedImage grayImage = op.filter(image, null); 

Pero no estoy seguro de cómo modificar esto para convertir a sólo blanco y negro.

Respuesta

8

Basado en otra respuesta (escala de grises que se produce):

public static BufferedImage toBinaryImage(final BufferedImage image) { 
    final BufferedImage blackAndWhiteImage = new BufferedImage(
      image.getWidth(null), 
      image.getHeight(null), 
      BufferedImage.TYPE_BYTE_BINARY); 
    final Graphics2D g = (Graphics2D) blackAndWhiteImage.getGraphics(); 
    g.drawImage(image, 0, 0, null); 
    g.dispose(); 
    return blackAndWhiteImage; 
} 

No se puede hacer con ColorConvertOp porque no hay espacio de color binario.

+0

Perfecto ... Editaré tu respuesta ligeramente para hacer un método completo que lo haga. –

+0

+ = 1. Muy genial... – Java42