реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Помогите конвертировать цвет
-=Женек=-
сообщение Jan 22 2011, 09:37
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 559
Регистрация: 6-09-06
Пользователь №: 20 131



Господа есть библиотека, в которой цвет закодирован следующим образом:
#define COLOR(R,G,cool.gif ((1l<<15)|((uword)B<<10)|((uword)G<<5)|R)

Вот у меня есть цвет в таком формате 0,0,13 (то есть синего там 13)

А в фотошопе мне нужно нарисовать такой же цвет, но в виде 0x0000xx, где xx - синий цвет, то есть 24 битный формат.

Как перевести?
Go to the top of the page
 
+Quote Post
Methane
сообщение Jan 22 2011, 09:43
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(-=Женек=- @ Jan 22 2011, 11:37) *
Господа есть библиотека, в которой цвет закодирован следующим образом:
#define COLOR(R,G,cool.gif ((1l<<15)|((uword)B<<10)|((uword)G<<5)|R)

Вот у меня есть цвет в таком формате 0,0,13 (то есть синего там 13)

А в фотошопе мне нужно нарисовать такой же цвет, но в виде 0x0000xx, где xx - синий цвет, то есть 24 битный формат.

Как перевести?

Просто в старшие биты поместите.
Go to the top of the page
 
+Quote Post
ae_
сообщение Jan 22 2011, 11:10
Сообщение #3


Участник
***

Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695



Цитата(-=Женек=- @ Jan 22 2011, 17:37) *
... #define COLOR(R,G,B) ((1l<<15)|((uword)B<<10)|((uword)G<<5)|R)
Вот у меня есть цвет в таком формате 0,0,13 (то есть синего там 13)
А в фотошопе мне нужно нарисовать такой же цвет, но в виде 0x0000xx, где xx - синий цвет, то есть 24 битный формат.

Если я правильно понял, исходный цвет задаётся тремя числами R=0...31, G=0...31, B=0...31.
Тогда для получения 0xRRGGBB можно сделать так ((uword)R<<19) | ((uword)G<<11) | ((uword)B<<3)
Go to the top of the page
 
+Quote Post
777777
сообщение Jan 24 2011, 13:20
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



А что такое 1l<<15
Go to the top of the page
 
+Quote Post
M_Andrey
сообщение Jan 24 2011, 16:03
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 158
Регистрация: 15-10-07
Из: Й-Ола
Пользователь №: 31 376



Цитата(777777 @ Jan 24 2011, 16:20) *
А что такое 1l<<15

это 1 приведенная к типу long и сдвинутая 15 раз влево.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jan 24 2011, 16:34
Сообщение #6


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(M_Andrey @ Jan 24 2011, 19:03) *
это 1 приведенная к типу long и сдвинутая 15 раз влево.
Юзайте заглавные буковки для указания типа констант: 3L 5U 7UL - оно наглядней будет:-)


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
777777
сообщение Jan 25 2011, 05:43
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(M_Andrey @ Jan 24 2011, 19:03) *
это 1 приведенная к типу long и сдвинутая 15 раз влево.

В таком случае нужно писать 1L<<15 чтобы не спутать L с вертикальной чертой
Go to the top of the page
 
+Quote Post
M_Andrey
сообщение Jan 25 2011, 05:56
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 158
Регистрация: 15-10-07
Из: Й-Ола
Пользователь №: 31 376



Цитата(777777 @ Jan 25 2011, 08:43) *
В таком случае нужно писать 1L<<15 чтобы не спутать L с вертикальной чертой


Я не понял, это вы мне говорите, кто-то вообще не понял что это обозначает.
Go to the top of the page
 
+Quote Post
777777
сообщение Jan 25 2011, 06:17
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(M_Andrey @ Jan 25 2011, 08:56) *
Я не понял, это вы мне говорите, кто-то вообще не понял что это обозначает.

Да, я вообще не понял что это обозначает, потому что решил, что это вертикальная черта, а не маленькая L. Поэтому и предлагаю пользоваться большой L. Кстати, demiurg_spb написал вам о том же.
Go to the top of the page
 
+Quote Post
M_Andrey
сообщение Jan 25 2011, 09:35
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 158
Регистрация: 15-10-07
Из: Й-Ола
Пользователь №: 31 376



Цитата(777777 @ Jan 25 2011, 09:17) *
Да, я вообще не понял что это обозначает, потому что решил, что это вертикальная черта, а не маленькая L. Поэтому и предлагаю пользоваться большой L. Кстати, demiurg_spb написал вам о том же.


Меня как-раз напрягает то что вы мне это говорите, говорите топикстартеру, я это и без вас знал.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 04:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01432 секунд с 7
ELECTRONIX ©2004-2016