在Java中将图像转换为二色图像

6

我希望使用Java将一张图片转换为2色,即黑白。我正在使用以下代码将其转换为灰度图像:

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

但是我不确定如何修改它只转换成黑白色。

1个回答

8

根据另一个回答(得到了灰度图):

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

您不能使用ColorConvertOp进行操作,因为它没有二进制色彩空间。

完美...我会稍微编辑你的答案,以便创建一个完整的方法来实现这个。 - Steve McLeod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接