С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/37: Рейтинг темы: голосов - 37, средняя оценка - 4.97
14 / 14 / 2
Регистрация: 09.06.2010
Сообщений: 35

HSB to RGB

27.08.2010, 15:00. Показов 7375. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
RGB в HSB я конвертирую так :
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public static HSB RGB2HSB(RGB Color)
        {
            HSB H_S_B = new HSB();
            double MinRGB, MaxRGB, Delta;
            double H, S, B;
            H = 0.0;
            MinRGB = Math.Min(Math.Min(Color.Red, Color.Green), Color.Blue);
            MaxRGB = Math.Max(Math.Max(Color.Red, Color.Green), Color.Blue);
            Delta = MaxRGB - MinRGB;
            B = MaxRGB;
            if (MaxRGB != 0.0)
            {
                S = 255.0 * Delta / MaxRGB;
            }
            else
            {
                S = 0.0;
            }
            if (S != 0.0)
            {
                if (Color.Red == MaxRGB)
                {
                    H = (Color.Green - Color.Blue) / Delta;
                }
                else if (Color.Green == MaxRGB)
                {
                    H = 2.0 + (Color.Blue - Color.Red) / Delta;
                }
                else if (Color.Blue == MaxRGB)
                {
                    H = 4.0 + (Color.Red - Color.Green) / Delta;
                }
            }
            else
            {
                H = -1.0;
                H = H * 60.0;
            }
            if (H < 0)
            {
                H = H + 360.0;
            }
            H_S_B.Hue = H;
            H_S_B.Saturation = S * 100 / 255;
            H_S_B.Brightness = B * 100 / 255;
            return H_S_B;
        }
А как переконвертировать HSB в RGB?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.08.2010, 15:00
Ответы с готовыми решениями:

Преобразование HSB в RGB, Alphablend
Пример преобразования HSB в RGB, Alphablend на RAD Studio 10.2 Tokyo

RGB-HSB и HEX ещё и вот как с этим быть =||
Вот какая штука, господа. Нада написать этакий color chooser и хотелось бы сделать это через как эго на г...забыл толи градации толи...

Перевести фиолетовый (105, 62, 151) из RGB в HSB, уменьшить яркость в 2 раза и перевести обратно
Помогите пожалуйста! Перевести фиолетовый (105, 62, 151) из RGB в HSB, уменьшить яркость в 2 раза и перевести обратно

3
|____WTF!?____|
 Аватар для stalkersev
95 / 94 / 11
Регистрация: 01.06.2010
Сообщений: 227
27.08.2010, 16:36
Всё делается по формулам, подробности читай тут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
void HsvToRgb(double h, double S, double V, out int r, out int g, out int b)
{
 
 
  double H = h;
  while (H < 0) { H += 360; };
  while (H >= 360) { H -= 360; };
  double R, G, B;
  if (V <= 0)
    { R = G = B = 0; }
  else if (S <= 0)
  {
    R = G = B = V;
  }
  else
  {
    double hf = H / 60.0;
    int i = (int)Math.Floor(hf);
    double f = hf - i;
    double pv = V * (1 - S);
    double qv = V * (1 - S * f);
    double tv = V * (1 - S * (1 - f));
    switch (i)
    {
 
 
 
      case 0:
        R = V;
        G = tv;
        B = pv;
        break;
 
   
 
      case 1:
        R = qv;
        G = V;
        B = pv;
        break;
      case 2:
        R = pv;
        G = V;
        B = tv;
        break;
 
  
 
      case 3:
        R = pv;
        G = qv;
        B = V;
        break;
      case 4:
        R = tv;
        G = pv;
        B = V;
        break;
 
 
 
      case 5:
        R = V;
        G = pv;
        B = qv;
        break;
 
     
 
      case 6:
        R = V;
        G = tv;
        B = pv;
        break;
      case -1:
        R = V;
        G = pv;
        B = qv;
        break;
 
    
 
      default:
    
        R = G = B = V; 
        break;
    }
  }
  r = Clamp((int)(R * 255.0));
  g = Clamp((int)(G * 255.0));
  b = Clamp((int)(B * 255.0));
}
 
 
int Clamp(int i)
{
  if (i < 0) return 0;
  if (i > 255) return 255;
  return i;
}
И там, где тебе будет нужно, вызываешь процедуру:
C#
1
2
int r,g,b;
HsvToRgb(110, 1, 1, out r, out g, out b);
0
14 / 14 / 2
Регистрация: 09.06.2010
Сообщений: 35
27.08.2010, 16:59  [ТС]
Спасибо!А есть ли формулы по конвертации в CMYK,Lab и обратно?
0
|____WTF!?____|
 Аватар для stalkersev
95 / 94 / 11
Регистрация: 01.06.2010
Сообщений: 227
27.08.2010, 17:08
Из CMYK в RGB:

Задаешь rgb:
C#
1
2
3
int r=
int g=
int b=
А вот сама процедура:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
double R, G, B;
R = (double) r;
G = (double) g;
B = (double) b;
 
R = 1.0 - (R / 255.0);
G = 1.0 - (G / 255.0);
B = 1.0 - (B / 255.0);
 
double C, M, Y, K;
if (R < G)
K = R;
else
K = G;
if (B < K)
K = B;
 
C = (R - K)/(1.0 - K);
M = (G - K)/(1.0 - K);
Y = (B - K)/(1.0 - K);
 
C = (C * 100) + 0.5;
M = (M * 100) + 0.5;
Y = (Y * 100) + 0.5;
K = (K * 100) + 0.5;
Остальное читай здесь:

CMYK
LAB
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.08.2010, 17:08
Помогаю со студенческими работами здесь

HSB project troubles
Всем привет! Заранее выражаю благодарность всем, кто поможет! Теперь, собственно, проблема: нужно научиться преобразовывать...

Определить яркость пикселя в HSB
Сразу, во избежание суровых реплик в мой адрес, хочу предупредить - я не программист, и это мой первый большой опыт в написании программы. ...

Писк материнской платы HSB-811P
Здравствуйте! Нужна помощь по промышленной материнской плате Aaeon HSB-811P! Проблема такая: Села батарейка BIOSa, решил ее поменять....

Гистограмма CMYK/RGB - некорректный перевод из CMYK в RGB
Возникла проблема с правильностью перевода из RGB в CMYK. Все переменные до самого конца - double, но при этом расчёты будто ведёт пьяный...

Конвертер rgb в hex и hex в rgb.
помогите, пожалуйста, написать класс(конструктор) , который конвертирует rgb в hex(1 функция) и hex в rgb (2 функция).


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru