![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Nov 2005
Сообщений: 19
|
Народ, подскажите пожалуйста, как достать соотношение цветов из шестнадцатеричной строки:
например: 0x00FF00 - это: красного - 0; зеленого - 255; синего - 0 Внести, я так понимаю, можно только setTransform'ом? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Зачем? 255 = FF в шестнадцатиричной системе. 00 = 0, соответственно.
Разбей на группы по два символа, переведи из 16-ричной в десятичную, вот тебе и соотношения. (перевод из шестнадцатиричной в примитиве — Number('0x'+str); где str = '3A' например) |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 19
|
Огроменный сенкс iNils.
Респект и уважуха ![]() Только 1 вопрос: как ты высчитал что (col >> 8)? Последний раз редактировалось Stashnyi Glyuk; 23.10.2006 в 19:23. |
|
|||||
|
Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
|
А мне так всегда нравилось:
col = 0x00FF00; r = col >> 16; g = (col >> 8)-(r << 8); b = col-(r << 16)-(g << 8); trace(r+":"+g+":"+b); ![]()
__________________
Верить никому нельзя. Мне - можно. :) |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 19
|
Ну объясните, как вы высчитываете числа 8, 16, 0xFF
Вот вы все говорите, что правилами запрещено просить, чтобы что-то сделали за тебя, а сами объяснить можете откуда это берется? |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
>> - это побитовое смещение вправо. Указывая 16 и 8 мы сдвигаем число на нужное количество битов.
0x00FF00 в двоичном представлении это 0000 0000 1111 1111 0000 0000, сдвинули на 16 бит вправо у нас осталось только 0000 0000, так мы получили значение красного цвета. Для получения зеленого мы сдвигаем на 8 бит право, и у нас остается 0000 0000 1111 1111, но нам нужно избавится от лишних битов слева. И поэтому мы применяем побитовое И для 0xFF или как предложил Dendroid сдвигаем красный цвет влево на 8 бит и вычитаем получившиеся значение из текущего зеленого. |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 120
|
Цитата:
Пример: нули так и остались слева Последний раз редактировалось goldlider; 02.11.2011 в 20:07. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
По теме:
http://livedocs.macromedia.com/flash.../00001801.html http://livedocs.macromedia.com/flash.../00001808.html http://livedocs.macromedia.com/flash.../00001803.html |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
Цитата:
![]()
__________________
Загружаем картинки, минуя ошибки безопасности |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:22. |
|
|
« Предыдущая тема | Следующая тема » |
|
|