PDA

Просмотр полной версии : Как определить число соотв. цвету?



StAnatoliy
11.11.2016, 11:49
В диалоговом окне при выборе цвета есть разные
значения состовляющих цвета. А как из них составить
одно число? Чтобы задать переменную.
А то гадаю методом перебора, а карту цветов не нашел.

capzap
11.11.2016, 12:03
обычно в виндовых программах, показаны в ИНТах отдельные значения каждого цвета и общее число в HEX-формате, а так красный смещаете в лево на 16 разряда, зеленый на 8, голубой оставляете таким же и все эти значения складываете

Владимир Ситников
11.11.2016, 12:07
В диалоговом окне при выборе цвета есть разные
значения состовляющих цвета. А как из них составить
одно число? Чтобы задать переменную.
А то гадаю методом перебора, а карту цветов не нашел.

В Яндексе есть инструмент для выбора цвета, преобразования компонент в общее число и т.п.: https://yandex.ru/search/?lr=46&msid=1478855106.30155.22897.22863&text=%D1%86%D0%B2%D0%B5%D1%82%20%D1%8F%D0%B8%D1%86 %20%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B 2%D1%83%D1%8E%D1%89%D0%B5%D0%B3%D0%BE%20%D0%B4%D1% 80%D0%BE%D0%B7%D0%B4%D0%B0

StAnatoliy
11.11.2016, 12:19
Цвета там не совпадают. И тут тоже http://getcolor.ru/ не правильно.
Нашел что с VB6 кодировка цветов совподает, там можно число определить.

petera
11.11.2016, 12:22
В диалоговом окне при выборе цвета есть разные
значения состовляющих цвета. А как из них составить
одно число? Чтобы задать переменную.
А то гадаю методом перебора, а карту цветов не нашел.

Может этот проект Вам поможет http://www.owen.ru/forum/showthread.php?t=23024&p=191615&viewfull=1#post191615
Truecolor-цвет использует по 8 бит для представления красной, синей и зелёной составляющих. Кодируется 28 = 256 различных вариантов представления цвета для каждого канала, или всего 16 777 216 цветов (256x256x256).
Цвет можно представить в RGB виде RGB( r, g, b ), где r, g и b — интенсивность (в диапазоне от 0 до 255) соответственно красной, зелёной и синей составляющих определяемого цвета C. То есть ярко-синий цвет может быть определён как (0,0,255), красный как (255,0,0), ярко-фиолетовый — (255,0,255), чёрный — (0,0,0), а белый — (255,255,255).


https://www.youtube.com/watch?v=ALTpjgdBgSw

ЗЫ
ярко-синий цвет (0,0,255) = 255
красный - (255,0,0) = 16711680
ярко-фиолетовый — (255,0,255) = 16711935
белый — (255,255,255) = 16777215

UPD
В примере Цвета_СП310_n.rar добавил поля ввода значений.

StAnatoliy
11.11.2016, 13:08
Похоже цвет пересчитывается как то иначе.
Ставлю 255 - красный
500- тоже красный, только оттенок меняется.
255255 - получаеся зеленый.
255000 - тоже зеленый, цвет не изменился

petera
11.11.2016, 13:23
Цвета там не совпадают. И тут тоже http://getcolor.ru/ не правильно.
Нашел что с VB6 кодировка цветов совподает, там можно число определить.

По ссылке http://getcolor.ru/ цвет совпадает, и число там тоже можно определить
27530 27531 27532

27533 27534

petera
11.11.2016, 13:28
Похоже цвет пересчитывается как то иначе.
Ставлю 255 - красный
500- тоже красный, только оттенок меняется.
255255 - получаеся зеленый.
255000 - тоже зеленый, цвет не изменился

Так в шестнадцатеричной системе составлять надо!
255 - FF
по этому не 255255 нужно брать, а FFFF = 65535
и не 255000, а FF00 = 65280

ЗЫ.
Для задания цвета, нужна переменная DWord - четыре байта
старший байт не используется
младший - синий цвет
третий байт - красный
байт посередине - зеленый.

ЗЫ
Воспользуйтесь калькулятором Windows
Введите число Hex,
27535
и переключите в Dec
27536

Ну или совсем по "крутой" формуле для десятичных значений
Цвет = 65536*(красный цвет) + 256*(зеленый цвет) + синий цвет
где составляющие цвета - числа от 0 до 255.

StAnatoliy
11.11.2016, 14:32
Я так и переводил в десятичный вид, если вводить в шестнадц. сист.
во время подключения online то codesys2.3.9 не принимает - пишет ошибка.
Переменная тоже dw.
Так #25F461 - яркий зеленый =2487393 (дес.) по сайту - совпало с codesys
а #E7082C = 15140908 - красный по сайту , а в codesys - фиолетовый

petera
11.11.2016, 15:28
Я так и переводил в десятичный вид, если вводить в шестнадц. сист.
во время подключения online то codesys2.3.9 не принимает - пишет ошибка.
Переменная тоже dw.
Так #25F461 - яркий зеленый =2487393 (дес.) по сайту - совпало с codesys
а #E7082C = 15140908 - красный по сайту , а в codesys - фиолетовый

Я так и не понял причем здесь codesys.:(

а #E7082C = 15140908 - красный по сайту , а в codesys - фиолетовый
27538 http://su0.ru/article/page/palette-color-online

27539 http://www.color-hex.com/color/e7082c
Если это фиолетовый, то я - дальтоник.

StAnatoliy
11.11.2016, 16:08
В codesys я создал экран визуализации и меняю
цвет в заливке прямоугольника.
Я еще раз проверил E7082C =15140908 в заливке фиолетовый.
В VB6 - тоже фиолетовый.
Красный цвет который на картинке - соответствует коду 003043F3 для
заливке в прямоугольнике - нашел с помощью среды програмирования VB6

Владимир Ситников
11.11.2016, 16:52
В codesys я создал экран визуализации и меняю
цвет в заливке прямоугольника.

Проверьте такие значения и скажите какие цвета получаются:
16711680
65280
255

petera
11.11.2016, 18:30
В codesys я создал экран визуализации и меняю
цвет в заливке прямоугольника.
Я еще раз проверил E7082C =15140908 в заливке фиолетовый.
В VB6 - тоже фиолетовый.
Красный цвет который на картинке - соответствует коду 003043F3 для
заливке в прямоугольнике - нашел с помощью среды програмирования VB6

На сколько я понял живой панели у Вас нет. Из-за этого всякие эксперименты с codesys и VB.
Хотите верьте, хотите нет, но
1. В панели по коду 003043F3 получается ярко синий цвет, что вполне логично ведь компонента B=F3, а R=30 и G=43 весьма малы.
2. Тот цвет, который у Вас в VB получается фиолетовым (E7082C =15140908), в панели красный почти как на картинке из моего поста #10
27540

Все проверено в панели!
Я же уже давал ссылку на проект, который позволяет это все проверить!
Добавил поля прямого ввода Hex и Dec значений для цвета прямоугольника
27541

ЗЫ
Проверил выборочно, штук 10 различных цветов с этого сайта http://www.imgonline.com.ua/color-palette.php
27544 27545 27546
В панели весьма похожие цвета получаются.

StAnatoliy
12.11.2016, 18:45
Панели нет, хотел чтобы на мониторе компьютера отображалось.
Спасибо Владимиру - понял в чем дело.
Цвета по сайту http://www.imgonline.com.ua/color-palette.php идут кр\зел\син
В кодесис син\зел\кр
27556