· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.HEAP —› Some bitmap?

Посл.отвђт Сообщенiе


Дата: Окт 24, 2003 01:18:44 · Поправил: Asterix

Имеется bitmap, кто не узнал-стандартный рисунок стола из win98,
который распознаётся всеми графическими редакторами как 1 битный
чёрно-белый, но в реальности мы видим что он синий, почему так?,
как тогда можно получить другой цвет, но чтоб bitmap так и оставался чёрно-белым,
это сильно уменьшает его размер ;-)

_743426010__Bitmap.bmp


Дата: Окт 24, 2003 02:08:14

Посмотри в MSDN описание структур BITMAPFILEHEADER и BITMAPINFO. Особенно обрати внимание на поле bmiColors. Затем глянь на файл и многое станет ясно.


Дата: Окт 24, 2003 02:39:53

Asterix
Так я ведь уже объяснял в чём там дело.

как тогда можно получить другой цвет, но чтоб bitmap так и оставался чёрно-белым
В хекс-редакторе правишь палитру.


Дата: Окт 24, 2003 03:24:19

Ааааааа, вы мне точно место укажите где в самом файле находится
сие поле, отвечающее за цвет, и какие оно может принимать значения??


Дата: Окт 24, 2003 04:45:42

Давно я битмапы вручную не парсил... Данное поле не имеет точного местоположения (фактически зависит от битмапа). Значения оно принимает, вроде, в RGB формате. Ты в хексе на это смотрел? Сделай так:
1. Нарисуй в Paint прямоугольник сплошного цвета.
2. Глянь в хексе.
3. Поменяй цвет прямоугольника.
4. Опять глянь в хексе и сравни (file compare).

... Ну, дальше ты ДОЛЖЕН сам всё понять!!!

ЗЫ: BMP - элементарный формат, хоть и не без подводных камней ;-)


Дата: Окт 24, 2003 10:51:49

Asterix
Обычно палитра начинается с 54 байта. Каждый элемент палитры занимает 4 байта. Интенсивность синего, зеленого, красного и один байт не используется.


Дата: Окт 24, 2003 11:38:18

Тут всё дело в палитре. Если тебе надо в проге создать,
такой растр, то во время создания создавай обычное совместимое растровое изображение, а во время сохранения
указывай кодировку 1 бит на пиксель. Создавай палитру, передавай её прцедуре сохранения. Не пробавал но думаю должно получится, если дашь свой мыльник вышлю тебе процедуру, которая будет анологична процедуре из исходника PaintView, но с дополнительным парметром хендлом палитри для сохранения (если надо конечно).


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.079