Podsumujmy dyskusję w komentarzu, żeby nie zaginęło:
Ale co to ma być? Tekst nie jest obrazem! zatem czym jest? - jak należy to zapakować do jpg? - jak odkodować? - jak porównać różnice z oryginałem?
Możesz wyrenderować tekst — zamienić go na formę wizualną czytelną dla ludzi, w postaci obrazka. To jest to, co masz w poście Wibowita wyżej. Możesz też zrobić tę akrobację, którą Ty proponujesz — mieć obrazek, którego kolejne wartości pikseli odpowiadają wartościom UTF-8 (czy tam jakim) źródłowego tekstu.
dobrze kombinujesz, pomijając to bmp; nie ma żadnego bmp! ładujesz kolory do obrazka wprost z txt (z czegokolwiek!), czyli masz np.: A = 64, B = 65, ... 255 = white, 0 = black, zatem to A = ciemno szary - jasne? ładujesz to w obrazek i kompresujesz (ale po wygładzeniu, oczywiście)
Żeby coś „załadować w obrazek”, musi mieć to format zrozumiały dla komputera (chyba że chcesz mieć to narysowane na kartce albo co?). Jednym z formatów jest BMP — jest on skrajnie prymitywny, w wersji najbardziej podstawowej to nagłówek z podstawowymi informacjami o pliku i ciąg wartości kolorów pikseli.
A czemu operacja „zróbmy z pliku tekstowego na pałę obrazek, a potem ten obrazek skompresujmy JPEG-iem” jest idiotyczna? Bo JPEG kompresuje stratnie. Różnice są mniej lub bardziej niezauważalne dla ludzi, ale i tak zmieniają wartości kolorów. Czyli — litery, które miałaś w wyjściowym tekście. Po takiej „kompresji” otrzymasz sieczkę, której nie będzie się dało zdekompresować do niczego czytelnego, bo informacje, które nam do tego są niezbędne, zostały usunięte.