Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как преобразовывать палитры цветов? [Delphi, Windows]


Sormy ©   (2004-06-17 00:40:00) 

Как установить битмапу тип там 8бит или 24 бита или 32 бита?
Каков алгоритм преобразовывания цвета из 32бит в 24 бита и обратно?


Dimaxx   (2004-06-24 22:50:00) [1]

Сырцов нет и под D4. К тому же шаровары. Нужны сырцы. Хотя бы .obj сишный. Чтоб прилинковать мона было.


Gandalf   (2004-06-23 23:56:00) [2]

Про google не слышал?
http://www.vclcomponents.com/search.asp?ID_CATEGORY=173&PGIX=14


Dimaxx   (2004-06-22 21:39:00) [3]

Пользуясь случаем спрошу: нет у кого исходников оптимизации палитры методом Floyd-Steinberg? Желателен паскаль.


SPeller   (2004-06-17 20:03:00) [4]

Ну почему же не тот? Вопрос по работе с битмапом, по-моему, вполне подходит к разделу Media.


Gandalf   (2004-06-17 19:41:00) [5]

Скажу больше в целом это и не тот сайт.


SPeller   (2004-06-17 16:21:00) [6]

Значит палитра используется своя какая-то. В справке так и написано "The bitmap has a maximum of 256 colors, and the bmiColors member contains up to 256 entries. In this case, each byte in the array represents a single pixel." bmiColors - это и есть размер палитры. Теперь тебе нужно только узнать какую палитру использует игра и при сохранении своих битмапов преобразовывать к нужному формату. Как? Это уже не в этой конференции.


Sormy   (2004-06-17 14:28:00) [7]

Так мы особо не наговорим...
Излагаю проблему полностью...
Я занимаюсь переводом игры Divine Divinity. Вскрыл все формат текстовых ресурсов... Теперь надо перевести шрифт... долго не мог допереть по какому алгоритму он написан... Теперь понял... Сейчас пишу редактор шрифтов... Все нормально открывает, но цвета не совпадают в игре и в моей проге...
В файле под каждый пиксел выделяется 2 байта, я подумал, что стандартный 16битный цвет, но, видимо, ошибся... Теперь бы надо как-нить его заставить нормально отображаться... Я уже начинаю думать, что какой-то из них под альфа канал установлен, хотя прозрачных шрифтов в игре не видел...


SPeller   (2004-06-17 13:35:00) [8]

А ты хотел чтобы 24 бита после преобразования в 8 бит выглядели так же?


Sormy   (2004-06-17 12:20:00) [9]

Да... Работает...
но все равно отображается не так как надо...
Это видимо потому что исходный 24битный цвет имеет другой формат нежели стандартный 24битный виндовый.
Не знаешь, как у integer'a допустим только первый байт прочитать или только второй в пременную типа byte???


SPeller   (2004-06-17 11:51:00) [10]

Ты после загрузки PixelFormat присваивай.


Sormy   (2004-06-17 10:31:00) [11]

Это я уже пробовал, но ничего из этого не вышло. Даже если я битмапу задаю 1 бит, он все равно цветным загружается...
Есть номер цвета в типе WORD. Но если пикселам присваивать его цвет, то цвет неправильно отображается... Как преобразовать номер 24 битного цвета в 32 битные и обратно?


SPeller   (2004-06-17 06:21:00) [12]

Bitmap.PixelFormat := pf24bit (pf1bit, pf8bit, etc)


Наверх

Титульная страница Поиск, карта сайта Написать письмо