pcx в bmp

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Ответить
Аватара пользователя
Javoronok
Сообщения: 5
Зарегистрирован: 23 мар 2007, 15:03
Контактная информация:

Здравствуйте! Как всегда с вопросами... =)
У меня такая проблема. Мне нужно конвертировать рисунок (256 цветов) формата pcx в рисунок (256 цветов) формата bmp. У меня вроде все переписывается верно, я в отладчике проверила, но картинки bmp нет, черный квадратик (я пока пытаюсь 12Х12 рисунок).
Может быть, я не правильно передаю палитру? Я делаю из 3хбайтовых групп pcx файла 4хбайтовые для bmp и всё... ну и естественно из конца файла pcx я переношу ее после заголовка в bmp. может, здесь есть какие-то особенности? Потому что я конвертировала какой-то программой свой pcx рисунок и получила в результате совсем другую палитру в bmp.
Компилирую я в Tasm'e. Программа для 8086.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Javoronok, придется тебе показать свой код конвертации - со слов вроде все верно, а что в коде написано... + bmp,pcx - посмотрю, покажу ошибку.
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
Javoronok
Сообщения: 5
Зарегистрирован: 23 мар 2007, 15:03
Контактная информация:

Спасибо за ответ! =)

Вот мой код, не судите строго, я недавно начала заниматься ассемблером, поэтому мой код может быть О-очень неэффективным. В объявлении переменных много лишнего, все никак не удалю.. =(
Вложения

[Расширение txt было запрещено, вложение больше недоступно.]

Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Javoronok, твои ошибка следущая:

Код: Выделить всё

plaBC	dd	00010008h
В структуре BMP файла сначала идет кол-во плоскостей, а потом глубина цвета. Наверное тебе известно, что в памяти числа хранятся начиная с младшего байта, т.е. в перевернутом виде. Это значит, что в файл запишется сначала 0008h а потом 0001h. Так как просмотрщик видит, что кол-во плоскостей - 8, а глубина цвета - 1 и размер данных слижком большой для такого формата, то соответственно ничего не выводит. Лишь черный экран - габариты известны, и цветность задана неверно.
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
Javoronok
Сообщения: 5
Зарегистрирован: 23 мар 2007, 15:03
Контактная информация:

:d Огромное спасибо!!!
И ведь правда читала об этом, но как всегда мимо ушей... =( теперь буду внимательнее! Еще раз спасибо!
Ответить