我想使用Java将图像转换为2色,黑色和白色。我正在使用以下代码转换为灰度:
ColorConvertOp op = new ColorConvertOp(
ColorSpace.getInstance(ColorSpace.CS_GRAY), null);
BufferedImage grayImage = op.filter(image, null);
但我不知道如何修改它以转换为黑白。
答案 0 :(得分: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
执行此操作,因为没有二进制颜色空间。