Приведение массива к двумерному

Jan 23, 2018 17:38

Тупняка псот.

Встала задача "по быстрому" сделать вывод изображений и текста на экранчик через фреймбуффер на Beaglebone. Всё без сторонних либ (тюкю сборка rootfs будет своя, да и просто понять как это работает на нулевом уровне). Для тех кто в танке, считайте что у меня просто одномерный массив (байтов, шортов или 32-х разрядный) размером 1024х768 (или другие разрешения) в который я пишу и получаю изображение на экране. Первая и главная задача - это выводить текст. Да не по горизонтали, а вертикальный текст (имею в виду чтобы дисплей расположен был вертикально. Горизонтально удалось, а вот вертикально уже затупил.



Вот хочу такой же текст, но вертикально. printf уже реализовал. Память представляет собой одномерный массив, идущий слева направо и потом сверху вниз.



Указатель на массив выглядит как:

static uint16_t *fbp = 0;

Вопрос совсем тупой: как преобразовать этот массив к виду arra[1024][768] (или другим разрешениям, они могут быть разные)? Чтобы можно было поставить точку там где ты хочешь? А то в уме уже начинаю путаться, уже второй день туплю.

Так же картинки. Как в старые добрые времена ДОС. Научился выводить pgm изображение, но нужен цвет. Либо преобразованное изображение с помощью программы LCD Image Converter. А вот решил bmp запилить побырому, чтобы можно было подложку менять. Взял примерчик отсюда . Сделал файлик test.bmp 1024x768 16bit



Получаю ссылку на битмам. Копирую её и получаю странный кал.



Цвета побиты, вместо одного сердца - тьма сердечек. Может я чего-то не понимаю? Кто делал, подскажите. Может у кого есть лёгкий пример, как выудить bitmap из bmp-файла. Спасибо!

Вопрос, Программирование

Previous post Next post
Up