Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/64: Рейтинг темы: голосов - 64, средняя оценка - 4.64
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
.NET 3.x

Преобразовать цвет в строку и обратно

21.10.2016, 21:38. Показов 13877. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте. Хочу спросить есть ли в c# возможность
1 Преобразовать цвет в строкук и обратно чтобы к примеру если цвет является красным то строка была Red а если в rgb то
FromArgb(255, r, g, b)
Я сомневаюсь что c# это позволяет так что это скорее просьба форумчан помочь найти модуль в которой бы были перечислены все константы C# и Delphi
А Delphi то это 2 вопрос собюственно конвентировать Цвет из C# В Delphi так что мне без констант не обойтись. Ну констангты delphi я могу посмотреть но дело в том что есть цвета без константь а в Delphi он записывается как $Hex код цвета
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.10.2016, 21:38
Ответы с готовыми решениями:

Преобразовать картинку в строку и обратно
Доброго времени суток, у меня есть сложное обучающее приложение, в нем находится около 100 картинок, в связи с чем мой Unity проект весит...

Преобразовать строку в цифры и обратно
Что то у меня не получается преобразовать в цифры. Вот пример что я делаю Dim temp2 As String = txtJDUser.Text + "," +...

Преобразовать строку из КОИ-8 в Юникод и обратно
Написать программу, преобразовывающую данную строку из 8-битной системы кодирования (КОИ-8) в 16-битную (Unicode) и обратно.

22
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
22.10.2016, 16:23
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Нет вместо # там & а мне именно # нужен
Дык замени. Я, видимо перепутал просто
C#
1
2
3
4
        string ColorToHtml(Color c)
        {
            return $"#{c.R.ToString("X2")}{c.G.ToString("X2")}{c.B.ToString("X2")}";
        }
0
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,904
23.10.2016, 10:46  [ТС]
Нашел какото код преобразование в CMYK но не знаю верно ли
C#
1
2
3
4
Black   = minimum(1-Red,1-Green,1-Blue)
    Cyan    = (1-Red-Black)/(1-Black)
    Magenta = (1-Green-Black)/(1-Black)
    Yellow  = (1-Blue-Black)/(1-Black)
Добавлено через 29 минут
Сделал по другому чуток. Также как сделал когдато в Delphi 7
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
string RGBToCMYK(byte r, byte g, byte b)
        {
            byte c, m, y, k;
            c = Convert.ToByte(255 - r);
            m = Convert.ToByte(255 - g);
            y = Convert.ToByte(255 - b);
            if (c < m)
                k = c;
            else
                k = m;
            if (y < k)
                k = y;
            if (k > 0)
            {
                c -= k;
                m -= k;
                y -= k;
            }
            return String.Format("{0}, {1}, {2}, {3}", c, m, y, k);
        }
Добавлено через 13 минут
Цитата Сообщение от diadiavova Посмотреть сообщение
Для формата HSB можно использовать методы той же структуры GetHue, GetSaturation и GetBrightness соответственно.
Я вообщето говорил про HLS а не HSB
Вот код в Delphi
Delphi
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
function TColortoHLS(Color : TColor) : String;
const
  HLSMAX = 240;
  RGBMAX = 255;
  UNDEFINED = (HLSMAX*2) div 3;
Var
  cMax, cMin: integer;
  Rdelta, Gdelta, Bdelta: single;
  H, L, S: integer;
  R, G, B: Byte;
Begin
  r     := Color;
  g     := Color shr 8;
  b     := Color shr 16;
  cMax := max( max(R,G), B);
  cMin := min( min(R,G), B);
  L := round( ( ((cMax+cMin)*HLSMAX) + RGBMAX )/(2*RGBMAX) );
  if (cMax = cMin) then
  begin
    S := 0;
    H := UNDEFINED;
  end else begin
    if (L <= (HLSMAX/2)) then
      S := round( ( ((cMax-cMin)*HLSMAX) + ((cMax+cMin)/2) ) / (cMax+cMin) )
    else
      S := round( ( ((cMax-cMin)*HLSMAX) + ((2*RGBMAX-cMax-cMin)/2) ) 
      / (2*RGBMAX-cMax-cMin) );
    Rdelta := ( ((cMax-R)*(HLSMAX/6)) + ((cMax-cMin)/2) ) / (cMax-cMin);
    Gdelta := ( ((cMax-G)*(HLSMAX/6)) + ((cMax-cMin)/2) ) / (cMax-cMin);
    Bdelta := ( ((cMax-B)*(HLSMAX/6)) + ((cMax-cMin)/2) ) / (cMax-cMin);
    if (R = cMax) then
      H := round(Bdelta - Gdelta)
    else
      if (G = cMax) then
        H := round( (HLSMAX/3) + Rdelta - Bdelta)
      else
        H := round( ((2*HLSMAX)/3) + Gdelta - Rdelta );
    if (H < 0) then
      H:=H + HLSMAX;
    if (H > HLSMAX) then
      H:= H - HLSMAX;
  end;
  if S<0 then
    S:=0;
  if S>HLSMAX then
    S:=HLSMAX;
  if L<0 then
    L:=0;
  if L>HLSMAX then
    L:=HLSMAX;
  Result:=IntToStr(H)+', '+IntToStr(L)+', '+IntToStr(S);
End;
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
23.10.2016, 10:54
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
Я вообщето говорил про HLS а не HSB
Я вообще-то написал о том, что есть встроенное, а об остальном было написано буквально следующее
Цитата Сообщение от diadiavova Посмотреть сообщение
Для остальных систем (типа CMYK прочего) в сети несложно найти алгоритмы перевода из ргб в эти системы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.10.2016, 10:54

Как преобразовать число в строку и обратно
Всем доброго времени! Помогите решить проблему -&gt; преобразовать число в строку и обратно Код довольно простой, беру из тектового поле...

Как преобразовать строку обратно в изображение
Сохраняю картинку следующим образом public static FileStream test = new FileStream(&quot;test.txt&quot;, FileMode.OpenOrCreate); ...

Как преобразовать время в строку и обратно
Помогите с алгоритмом: SYSTEMTIME(или FileTime) в строку с учетом региональных установок, а потом на основе данной строки обратно получить...

Подскажите, как преобразовать строку с IP адресом в число и обратно
Есть IP адрес в std::string &quot;192.168.1.1&quot;, нужно преобразовать его в число, а IP адрес числом преобразовать обратно, не используя сторонних...

Преобразовать строку String в массив #define byte_t unsigned char и обратно
Собственно танцы с бубном долгое время. Подскажите пожалуйста, как правильно и оптимально это делать. Каждый символ строки при...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru