![]() |
|
||||||||||
|
|||||
|
Guest
Сообщений: n/a
|
Люди, подскажите, plz:
как разложить rgb цвет на составляющие, то есть получить отдельно R,G и B? |
|
|||||
|
Guest
Сообщений: n/a
|
в dec как Number
|
|
|||||
|
некрофил
Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
|
В переменной с номером цвета биты 0..7 = B, 8..15 = G, 16..23 = R. Как и везде.
__________________
...убивать людей не удовольствия ради, но для еды. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Математически (от обратного):
Допустим у тебя есть отдельно значения для каждого цвета R, G и B в dec. Тогда суммарное значение RGB=R*65535+G*255+B. Соответственно, можно произвести и обратное преобразование ) |
|
|||||
|
Guest
Сообщений: n/a
|
кому интересно:
|
|
|||||
|
Guest
Сообщений: n/a
|
Цитата:
по твоей формуле: RGB=255*65535, проверим: Получаем: 16711680 16711425 Так - что надобно: RGB=R*65536+G*256+B. |
|
|||||
|
А нельзя разве так:
r = ((col>>16)&0xFF); g = ((col>>8)&0xFF); b = (col&0xFF); Или битовые операции нельзя использовать? |
|
|||||
Object.prototype.HEXtoRGB = function(hex)
{
var rgb24 = (isNaN(hex)) ? parseInt(hex, 16) : hex;
this.r = rgb24 >> 16;
this.g = (rgb24 ^ (this.r << 16)) >> 8;
this.b = (rgb24 ^ (this.r << 16)) ^ (this.g << 8);
trace('r:'+this.r+' g:'+this.g+' b:'+this.b)
return
};
/* test */
b = {}
hex = 0xD96926; //r:217, g:105, b:38
b.HEXtoRGB(hex);
__________________
file-> new-> F9 -> Ctrl+v/*code*/ ->ctrl+enter |
![]() |
Часовой пояс GMT +4, время: 10:14. |
|
|
« Предыдущая тема | Следующая тема » |
|
|