Lethargeek, пока я сживаюсь с основным ответом, хочу задать два косвенных вопросов.
1. Почему вы считаете, Фотошоп портит рисунка? Он же проделывает те же операции.
2. После прохождения алгоритма, на выходе получаем картинку с цветом на пиксель? И при конверсии в байт получим те же проблемы? Или можно выстроить алгоритм так, что на выходе на картинке будет два цвета на 8 точек, и тогда конверсия в байт будет элементарной?