Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Вниз

16 битное значение цвета из 32 битного представления   Найти похожие ветки 

 
homm ©   (2005-10-02 10:06) [0]

Тривиальная на первый взгля задача: Нужно из 32 бит цвета получить 16 бит, но выравненый по тем же краям.
Казалось бы чего проще: нужно просто обнулить младшие биты (Color AND $F8FCF8), ан нет, в 16 битах реальный
цвет например для цвета ($888888 AND $F8FCF8) вместо $888888 на экране получается $8C8A8C.


 
vrem   (2005-10-02 10:27) [1]

если 16 бит всего, то сколько на каждый из R, G, B ?
16 на 3 не делится. Поэтому выбрать сколько бит на каждый цвет устраивает.
Затем вспомнить, что 32 бита - это по 8 бит = палитра.B.G.R.
Задача сводится к такой - есть 8 бит на цвет, нужно n бит на цвет.
8 бит = 256 градаций, n бит - допустим 4 бита =2^4 = 16 градаций.
Взять значение 8-битного уровня и преобразовать -
((значение 8-битного уровня)/256)*(количество нужных градаций)


 
NightLord ©   (2005-10-02 10:32) [2]

> vrem   (02.10.05 10:27) [1]
Затем вспомнить, что 32 бита - это по 8 бит = палитра.B.G.R.


Насеолько я помно по 8 бит эт палитра 24 битная, или я ошибаюсь?


 
злобная танька   (2005-10-02 10:46) [3]

там ещё какая-то альфа добавляется в 32-битной вроде


 
MBo ©   (2005-10-02 10:52) [4]

Тут есть преобразование
http://www.delphimaster.ru/articles/pixels/index.html


 
homm ©   (2005-10-02 19:08) [5]

2 vrem

16 бит по умолчанию.(R-5,G-6,B-5). Мне не нужен был 16 битный цвет, мне нужно было 32 битное представление 16 битного цвета. (фактически 16->32, только 16 не известно, а известен ближайший к нему 32 цвет).

2 MBo

Спасибо, нашел перевод от 16 бит к 32 битам:
Result := (((w and $1F) * 541052) and $FF0000) or
           (((((w and $7E0) shr 5) * 266294) shr 8) and $FF00) or
           ((((w and $F800) shr 11) * 541052) shr 16);

Щас буду думать как без двойного преобразования (32->16->32) добится того-же.


 
MBo ©   (2005-10-03 07:36) [6]

>двойного преобразования (32->16->32)
Хм...
пожалуй, я не понимаю, что именно требуется



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.011 c
3-1136992175
мускул
2006-01-11 18:09
2006.03.12
Синхронизация таблиц


2-1140421864
Ио
2006-02-20 10:51
2006.03.12
Вопрос по времени


2-1140985062
Vitalik__
2006-02-26 23:17
2006.03.12
Перевод значения String в число.


3-1137613145
Dataqbazer
2006-01-18 22:39
2006.03.12
Как правльно? в чем может быть ошибка?


15-1139825192
Интересующийся
2006-02-13 13:06
2006.03.12
Кактеровки на валюты, акции, нефть и золото





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский