Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Разложить цвет на RGB составляющие

1.8K
05 сентября 2006 года
Andreww
81 / / 02.01.2004
Есть 24-битный битмап:
Graphics::TBitmap *Bitmap;

В нем хранится какая-то картинка. Нужно узнать компоненты цвета какого-то определенного пикселя. Чтобы узнать цвет я пишу:

Color = Bitmap->Canvas->Pixels[j];

В итоге Color принимает значения о 0 (черный) до 16777215 (белый). А как теперь разложить это число на R, G и B? При чем я даже наперед знаю что R=G=B (битмап серый, все каналы в пикселе имеют одинаковые значения). Поэтому достаточно узнать либо R, либо G, либо B. Это решаемо?
18K
05 сентября 2006 года
Leen
6 / / 17.07.2006
примерно так
 
Код:
int R = Color&0xFF;
int G = (Color&0xFF)>>8;
int B = (Color&0xFF)>>16;

Цвета (если смотреть на число в хекс-коде) видятся так:
GGBBRR, где XX - число от 00 до FF. А может есть и еще что-то встроенное типа "разложить на цвета". Так глубоко в битмапы не забирался.
89K
03 февраля 2013 года
spriteork
1 / / 03.02.2013
Цитата: Leen
примерно так
 
Код:
int R = Color&0xFF;
int G = (Color&0xFF)>>8;
int B = (Color&0xFF)>>16;
Цвета (если смотреть на число в хекс-коде) видятся так:
GGBBRR, где XX - число от 00 до FF. А может есть и еще что-то встроенное типа "разложить на цвета". Так глубоко в битмапы не забирался.



 
Код:
int R = Color&0xFF;
int G = (Color>>8)&0xFF;
int B = (Color>>16)&0xFF;
Так правильнее
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог