О преобразовании формата BMP

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Открыл глаза
Аватара пользователя
Сообщения: 49
Зарегистрирован: Сб мар 19, 2011 17:58:36
Откуда: Красноярск

Сообщение Каримов »

КОТЫ! Рыбки вам на завтрак!
Подскажите, кто может!
Есть такое устройство-дисплей 48х256 RGB пикселей (механическая развертка). И есть готовые файлы (8-цветов-как в Spectrum) BMP.
Параметры дисплея-линейка из 48-ми RGB LEDS (6 байт*8 бит). Вращение. И получаем 256 секторов.
Так вот: как можно преобразовать его в массив такого вида:
1-й байт включает\не включает RED LED первых 8-ми.
2-й байт включает\не включает Green LED первых 8-ми.
3-й байт включает\не включает Blue LED первых 8-ми.
................
46-й байт включает\не включает RED LED шестых 8-ми.
47-й байт включает\не включает Green LED шестых 8-ми.
48-й байт включает\не включает Blue LED шестых 8-ми.
------------------------------------------------------------------
Пример: 255,255,255 -даст белую из первых 8 ледов
255,0,0-даст красную из вторых 8 ледов
0,1,0-даст зеленую точку на 17-ом леде
63,255,63-даст белые 4 леда начиная с 25-го и 4 зеленых 4 леда начиная с 29-го

49-ый байт соответствует следующему сектору. И т.д.

Вопрос: Как (или какой прогой) можно сделать перекодирование формата BMP в НЕЧТО подобное?
А может есть чтото другое-готовое для рисования с выдачей похожего формата?
Вложения
Безымянный.rar
сам рисунок 48х255 RGB
(956 байт) 158 скачиваний
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

Каримов писал(а):Как (или какой прогой) можно сделать перекодирование формата BMP в НЕЧТО подобное?
Не думаю что есть такая программа. Ее придется писать самому или попросить кого-то (скорее всего не за просто так).
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 49
Зарегистрирован: Сб мар 19, 2011 17:58:36
Откуда: Красноярск

Сообщение Каримов »

с ориентируйте СКОКА будет в граммах?
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

BMP-формат очень прост(если только это не переименованный JPG или ICO) представляет из себя заголовок и сырой массив точек RGB, заголовок выявляется на основе сравнения двух-трех файлов в 16-ричном редакторе. А дальше все просто, нарезаешь на строчки и делаешь с ними все что тебе нужно в своем любимом языке программирования, да хоть в бейсике к примеру.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Аватара пользователя
Сообщения: 49
Зарегистрирован: Сб мар 19, 2011 17:58:36
Откуда: Красноярск

Сообщение Каримов »

Понял! ИЗ картинки в посте выше Получить массив такого формата: верхний левый пиксель - бит 0 и первого, и второго, и третьего байта
Зависит от цвета этого пикселя (черный-бит 0 во всех 3-х байтах=0, белый- бит 0 во всех 3-х байтах=1, синий-бит 0 в первом байте=1 а другие =0. НУ и т.д.
Объем массива- 3 байта на RGB(8 шт.) * 6 шт =18 байт -это только на один сектор!
На полную развертку- 18*256 секторов =4608 байт

сект.верт байты следуют друг за другом
[0000.0000] R:000 G:000 B:000- это 3 байта первого RGB блока из 8-ми ледов ПЕРВОГО сектора
[0000.0001] R:000 G:000 B:000- это 3 байта второго RGB блока из 8-ми ледов ПЕРВОГО сектора
[0000.0002] R:000 G:000 B:000
[0000.0003] R:000 G:000 B:000
[0000.0004] R:000 G:000 B:000
[0000.0005] R:000 G:000 B:000- это 3 байта шестого RGB блока из 8-ми ледов ПЕРВОГО сектора

[0001.0000] R:000 G:000 B:000- это 3 байта первого RGB блока из 8-ми ледов ВТОРОГО сектора
[0001.0001] R:000 G:000 B:000
[0001.0002] R:000 G:000 B:000
[0001.0003] R:000 G:000 B:000
[0001.0004] R:000 G:000 B:000
[0001.0005] R:000 G:000 B:000- это 3 байта шестого RGB блока из 8-ми ледов ВТОРОГО сектора
...........
[0255.0000] R:000 G:000 B:000- это 3 байта первого RGB блока из 8-ми ледов 256-го сектора
[0255.0001] R:000 G:000 B:000
[0255.0002] R:000 G:000 B:000
[0255.0003] R:000 G:000 B:000
[0255.0004] R:000 G:000 B:000
[0255.0005] R:000 G:000 B:000- это 3 байта шестого RGB блока из 8-ми ледов 256-го сектора
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 49
Зарегистрирован: Сб мар 19, 2011 17:58:36
Откуда: Красноярск

Сообщение Каримов »

Вот ТАКОЙ бы интерфейс (прогу) для 48х256 точек (даже без наворотов).
И цвета те что надо! Нарисовал и создал массив для заливки в МК. Ну и к массиву добавить еще один байт-для кодировки эффектов, которые будут использоваться с этим изображением! 8 эффектов (если бит установлен-пользуем такой эффект, если сброшен-не используем). И не надо будет всякие там BMP,PGN.....
http://radiokot.ru/circuit/light/run/52/
Реклама
Друг Кота
Аватара пользователя
Сообщения: 16545
Зарегистрирован: Вт сен 07, 2010 03:01:06
Откуда: Moscow-Izmaylovo

Сообщение m.ix »

off

Имею бегущую китайскую строку
она может воспринимать как раз этот самый BMP
В принципе любой BMP можно засунуть, но будет воспроизводить только свой формат
А можно просто самомум по точечно отрисовать или конвертировать в соответствующий размер.
Но лучше формировать ЧБ тк у меня не цветная имеет некоторое ограничение по объёму.

в общем нужно не превышать исходный размер матрицы.

XnView может конвертировать любую картинку в любой формат и размер и что то там ещё.
Просмотровщик картинок.

ПРо картинку и дэвайс ТС
Лучше для полного понимания отображаемого народом использовать матрицу по ширее чем 8х8 24х8.
Лечу лечить WWWашу покалеченную технику.
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 49
Зарегистрирован: Сб мар 19, 2011 17:58:36
Откуда: Красноярск

Сообщение Каримов »

Уже написали конвертор.
Спасибо
Ответить

Вернуться в «Интеграция с ПК»