Подбор цвета — RGB и HSV
Разработка - Инструментарий разработчика
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Для начала пара слов о цветовых моделях RGB и HSV. Цветовая модель — способ описания цвета набором чисел. Для RGB это всем привычные Красный, Зеленый, Синий — спектральные цвета, на которые раскладывается белый свет (цвет). HSV это Hue — тон, оттенок (красный, желтый, зеленый и т.п.), Saturation — насыщенность (мера "чистоты цвета", насколько он далек от серого) и Value — значение, яркость (насколько цвет ярче/тусклее). HSV не надо путать с HSL, в последнем L — Lightness — светлота (светлый/темный). RGB удобен, когда нам надо получить заданный цвет из компонент - источников света, поэтому ЭЛТ и ЖК экраны, телевизионный и видео сигнал использует именно эту модель. Но RGB плохо подходит для художников и дизайнеров, им часто требуется "сделать цвет поярче", "подобрать цвета градиента", "выбрать дополнительные цвета" и т.п. Для них HSV гораздо удобнее.
Предлагаемая обработка позволяет подобрать цвет несколькими способами:
1) Ввод компонентов цвета. Вводить можно любой компонент обоих цветовых моделей. При вводе значения компонента одной модели происходит автоматический пересчет компонентов другой.
2) Ввод цвет строкой RGB — в формате 1С или web-формате (шестнадцатеричном).
Разумеется, эти значения автоматически пересчитываются, и могут быть скопированы в код модуля.
3) Выбор цвета по шкале - R, G, B или H, SV
На шкале каждого компонента (кроме H-оттенка) мы видим цвета, которые получатся при изменении этого компонента и неизменных других. Т.е. на указанном примере в шкале R мы видим цвета от (0, 203, 219) до (255, 203 219).
И, наконец, 4) Выбор одного из стандартных цветов - WebЦвет, цвет стиля, цвет элемента стиля, заданного в конфигурации. Выбор производится двойным кликом на нужный цвет в списке.
Для преобразования такого цвета в абсолютный, т.е. RGB, использовался рецепт из комментария к статье Универсальные функции для работы с цветом в 1С. К сожалению этот подход не работает со значениями WindowsЦвета, но к счастью это требуется крайне редко.
Как будет выглядеть выбранный цвет, можно сразу увидеть в области примера:
Можно подбирать цвета фона, текста и рамки.
Для упрощения и ускорения работы, неиспользуемые панели отключаются:
В минимальном варианте форма выглядит так:
В максимальном вот так:
Пример использования:
&НаКлиенте
Процедура Подобрать(Команда)
ДопПараметры = Новый Структура("ИмяРеквизита","Цвет");
Оповещение = Новый ОписаниеОповещения("Оповещение", ЭтотОбъект, ДопПараметры);
ПараметрыФормы = Новый Структура();
ПараметрыФормы.Вставить("Цвет", Цвет);
ОткрытьФорму(ИмяФормыПодбораЦвета, ПараметрыФормы, ЭтотОбъект,,,,Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура Оповещение(Результат, ДопПараметры)Экспорт
Если ТипЗнч(Результат) = Тип("Структура") Тогда
ЭтотОбъект[ДопПараметры.ИмяРеквизита] = Результат.Цвет;
КонецЕсли;
КонецПроцедуры
При открытии формы можно указать параметр Цвет. Допустимо указывать либо значение типа Цвет, либо строку - в 1С- или web-формате, либо число. После выбора цвета возвращается Структура("Цвет, ЦветСтрока16, ЦветСтрока").
В следующих версиях планируется добавить:
- историю выбора
- выбор нескольких цветов
- определение дополнительных цветов, триад и тетрад, градиента
- использование типовых палитр
Обработка тестировалась на платформе 1С:Предприятие 8.3 (8.3.21.1393) в тонком клиенте.
На этом всё. Как всегда, приветствуются замечания / дополнения / комментарии.
Вступайте в нашу телеграмм-группу Инфостарт