Dlinyj (dlinyj) wrote,
Dlinyj
dlinyj

Category:

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

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

Встала задача "по быстрому" сделать вывод изображений и текста на экранчик через фреймбуффер на 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-файла. Спасибо!
Tags: Вопрос, Программирование
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 46 comments