![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
Привет всем! Помогите разобраться с таким вопросом..
Пытаюсь вывести 24-разрядный BMP-рисунок в окно программы. Приложение под реальный DOS. Код пишу на FASM'е, но споткнулся о формат BMP-файла, в доках которого говорится, что каждый пиксель описывается тремя байтами(RGB). Я создал в фотожопе рисунок 3х3 пикселя, каждые пиксели залил по-вертикали цветами B-G-R, и открыв получившийся BMP в HEX-редакторе увидел такую картину: Код:
Если размер файла 92, а заголовок занимает 54 байта, то выходит что полезной инфы в нём 92-54=38 байт. Рисунок у меня 3х3=9 точки, каждая из которых описывается 3-мя байтами, получается 27 байт. От куда ещё 11 байт? Вот эта картинка, начиная с адреса 36h (без заголовка), ..только полезная инфа: Код:
Подскажите, где я туплю..
Нашедшего выход - затаптывают первым..
|
![]() |
![]() |
![]() |
#2 | ||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,828
|
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
p51x, спасибо большое!
..и точно - это оказывается выравнивание. Если длинна строки не кратна 4 (выравнивание по-параграфу), то хвост забивается нулями от 1 до 3-х. Сделал картинку 4х4 пикселя и никах нулей в конце: Код:
Нашедшего выход - затаптывают первым..
|
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
..подскажите, что не так в коде?
Вроде что-то выводит, но ни как не нужную картинку. Размер картинки пока фиксированный - 64х64 пикселей. Вес - 2000h байт: Код:
Нашедшего выход - затаптывают первым..
Последний раз редактировалось R71MT; 03.08.2015 в 18:17. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 31.05.2009
Сообщений: 786
|
![]()
Почему размер картинки 2000h, если при 24 битном цвете он должен быть 3000h+заголовок?
И еще, учитывается ли то, что картинка в файле хранится в перевернутом виде? то есть в начале файла располагается нижняя строка. Где сама картинка? |
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
..да, реверс учитывал, поэтому вывожу со-строки 70 и потом строку уменьшаю. В итоге получается, что картинка выводится снизу-вверх. Сама картинка в скрепке..
Нашедшего выход - затаптывают первым..
|
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
![]()
..спасибо! Всё получилось..
Оказывается рисунок мой 8-битный BMP был (а не 24, как расчитывалось). Перекодировал его и всё встало в норму. Остальное там - дело техники, отшлифовать код и разобраться с интенсивностью..
Нашедшего выход - затаптывают первым..
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
DOS на FASM. Программа быстро вылетает. | Stilet | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 8 | 01.11.2016 18:44 |
Эллипс в DOS (masm, tasm, fasm) | Mikl___ | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 14 | 13.12.2014 09:06 |
Закрывается окно DOS | zlo_999 | Общие вопросы C/C++ | 10 | 16.03.2011 01:30 |
Окно в C для MS-DOS | Fixxxer | Общие вопросы C/C++ | 1 | 01.08.2009 16:34 |
Копирование картинки из DOS | DJ_SAN | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 17.03.2009 03:36 |