Лучше бы взяли и рассмотрели чуть более сложный алгоритм (например, habrahabr.ru/blogs/algorithm/115287/). LSB, который вы реализовали, уже даже в виде плагина к Total Commander'у сделали (раз, два).
PS кстати, стоит указать, что ваш алгоритм называется «метод LSB».
Автор, не знаю почему ты выбрал именно 18 бит на цвет оставлять, если например есть вполне себе зарекомендовавшая себя на телефонах модель цвета RGB565 — на цвет 16 бит, и 8 остается на символ. Кодировать удобно т.к. как раз одна запись цвета — один байт символа. Качество цвета немножко снизилось и из-за цикличности спрятанной строки проявились наклонные полосы
Прячем текст в Bitmap