![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| vadims |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 8.6.2005 Репутация: 2 Всего: 17 |
Задавал вопрос по графике – БОЛЬШОЕ СПАСИБО всем кто откликнулся – разобрался, сам могу консультировать.
Но нет счастья в жизни – не могу правильно сформировать код цвета, хоть тресни. Беру рисунок из BMP файла (8 бит), как перекодировать эти значения для видеорежима 0x114, 800x600x64К, тип модели памяти = 6 (непосредственные цвета) Вроде простое решение Color = red<<11 | green<<5 | blue не помогает, тк при анализе палитры в BMP файле оказалось, что что значения red,green,blue зачастую оказываются больше чем можно представить 5:6:5 битами. Наверное я что-то фундаментально насчет цветов не понимаю. -------------------- Cpu not found ! Press any key for software emulation. |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
потому что палитра вмр сделана как 8:8:8 3 байта на цвет
ну а если тебе необходимо получить 16 бит на пиксель то что мешает сделать сразу в данном формате вмр? имхо удобней и быстрее чем на лету перекодировать -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
vadims
Значит нужно перекодировать, что делается достаточно просто
Вот и всё Здесь red5,green6,blue5 это как раз те значения, которые нужно писать в память. А red8,green8,blue8 это то, что ты прочитал из bmp Добавлено @ 11:21 Кстати, я сейчас точно не помню, но порядок следования компонент RGB в bmp файлах и в видео-памяти может и не совпадать, так что будь внимателен -------------------- Да. Именно так. |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
если просто сделать shift право то будет бяка
там насколько я помню есть некий алгоритм для этого -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
А вот это уже интересней. Почему? -------------------- Да. Именно так. |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
не помню для 16 бит картинок
но для получения grayscale есть формула grayValue = (int)(0.299*redValue + 0.587*greenValue + 0.114*blueValue); для 16 бит есть нечто подобное -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
oleg1973
Для оттенков серого формулу я знаю... А вот для 16 бит ни разу не слышал, хотя чем чёрт не шутит Это сообщение отредактировал(а) Дрон - 10.6.2005, 11:39 -------------------- Да. Именно так. |
|||
|
||||
| vadims |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 8.6.2005 Репутация: 2 Всего: 17 |
Только сейчас въехал, что более значимая часть r,g,b находиться как раз в старших битах, а я наоборот младшие использовал. Старость наверное
Большое спасибо всем всем кто откликнулся!!! -------------------- Cpu not found ! Press any key for software emulation. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |