а если замутить прямоугольниками...
написать прогу которая будет искать прямоугольники черного цвета, потом сортировать их по размеру...
допустим в фигуре данной к примеру по координатам (12,2) располагается большой прямоугольник 3 на 23 пикселя...
найденные прямоугольники пишем в файл... первый "байт" позиция (х - 6 бит; y - 6 бит), второй "байт" размер (х - 6 бит; y - 6 бит)... итого три байта на прямоугольник...
В данной фигуре можно насчитать 8 прямоугольников... 24 байта...
тоже для простых фигур подойдет... если черного больше чем белого, то сначала инвертировать файл...
это вот что сходу на ум пришло...
программа по закодировке будет ресурсоемкой, зато разкодировка еще быстрей чем чтение файла
Добавлено:
вместо шести бит можно заюзать и пять, а оставшиеся 4 бита от трех байт (5*4=20, а в трех байтах 24) можно за управляющую инфу взять... мож цвет кодировать или еще ченить...