Я работаю над преобразованием цветного изображения в черно-белое изображение. Я использую BufferedImage для этого с типом TYPE_BYTE_BINARY. Но выходное изображение не преобразуется правильно. Например, если изображение содержит синие буквы на черном фоне, результат изображения для этой части является суммарно черным. Кто-нибудь может мне помочь? Мой код ниже.Преобразование цветного изображения в обратное/белое изображение
//Invert the colormodel
byte[] map = new byte[] { (byte) (255), (byte) (0) };
IndexColorModel colorModel = new IndexColorModel(1, 2, map,
map, map);
BufferedImage bufferedImage = new BufferedImage(
img.getWidth(null), img.getHeight(null),
BufferedImage.TYPE_BYTE_BINARY, colorModel);
Graphics2D g2 = bufferedImage.createGraphics();
g2.drawImage(img, 0, 0, null);
g2.dispose();
Проверить [* этот пример *] (http://stackoverflow.com/questions/14513542/convert-image-to-black-white/14513703#14513703) – MadProgrammer
@MadProgrammer Я разместил ответ ниже, но я понимаю, что большинство Это хорошо отражено в вашей ссылке. – haraldK
Сглаживание до битональных будет плохой идеей для факсов, потому что это увеличит размер сжатых данных. То, что вы, вероятно, хотите использовать, - это динамический алгоритм порога, который может обрабатывать тонкие цветовые различия и создавать хорошо выглядящие изображения. – BitBank