Перейти к содержанию
    

Помогите конвертировать цвет

Господа есть библиотека, в которой цвет закодирован следующим образом:

#define COLOR(R,G,B) ((1l<<15)|((uword)B<<10)|((uword)G<<5)|R)

 

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Господа есть библиотека, в которой цвет закодирован следующим образом:

#define COLOR(R,G,B) ((1l<<15)|((uword)B<<10)|((uword)G<<5)|R)

 

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

 

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

 

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

Просто в старшие биты поместите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... #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)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это 1 приведенная к типу long и сдвинутая 15 раз влево.
Юзайте заглавные буковки для указания типа констант: 3L 5U 7UL - оно наглядней будет:-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это 1 приведенная к типу long и сдвинутая 15 раз влево.

В таком случае нужно писать 1L<<15 чтобы не спутать L с вертикальной чертой

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В таком случае нужно писать 1L<<15 чтобы не спутать L с вертикальной чертой

 

Я не понял, это вы мне говорите, кто-то вообще не понял что это обозначает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не понял, это вы мне говорите, кто-то вообще не понял что это обозначает.

Да, я вообще не понял что это обозначает, потому что решил, что это вертикальная черта, а не маленькая L. Поэтому и предлагаю пользоваться большой L. Кстати, demiurg_spb написал вам о том же.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, я вообще не понял что это обозначает, потому что решил, что это вертикальная черта, а не маленькая L. Поэтому и предлагаю пользоваться большой L. Кстати, demiurg_spb написал вам о том же.

 

Меня как-раз напрягает то что вы мне это говорите, говорите топикстартеру, я это и без вас знал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...