2012-03-18 10 views
6

Mi piacerebbe convertire un'immagine in 2 colori, in bianco e nero utilizzando Java. Sto utilizzando il seguente codice per la conversione in scala di grigi:Convertire un'immagine in 2 colori in Java

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

Ma io non sono sicuro di come modificare questo per convertire a poco in bianco e nero.

risposta

8

basata su un'altra risposta (quella prodotta in scala di grigi):

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; 
} 

Non puoi farlo con ColorConvertOp perché non c'è spazio colore binario.

+0

Perfetto ... Io modificherò leggermente la tua risposta per fare un metodo completo che faccia questo. –

+0

+ = 1. Molto bello ... – Java42