Форум: "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