Мне нужно создать случайный цвет фона, который визуально приятен для трех типов текста: ARGB(255,255,255,255)
, ARGB(63,255,255,255)
и ARGB(255,0,0,0)
. Цвета белые, белые с непрозрачностью 0,25 и черные. Я еще не видел пример SO или где-то еще, который сравнивает цвет с несколькими цветами, чтобы решить, есть ли хороший контраст между ними (сравнение выполняется только между двумя цветами). Я не совсем понимаю теорию цвета, поэтому я ищу помощь.Случайный цвет фона для нескольких цветов переднего плана
ответ
Во-первых, вам нужно познакомиться с цветовыми пространствами и решить, что сделает случайный цвет визуально привлекательным. Цвет в основном может быть представлен как three components in many different spaces. Предпочтительным представлением для компьютеров является RGB с количеством красного, зеленого и синего цветов, соответствующих цвету. Однако для человеческого глаза HSV (оттенок, насыщенность, значение), вероятно, легче понять. В этом цветовом пространстве насыщенность представляет собой «насыщенный» цвет, то есть серая шкала имеет насыщенность нуля, поскольку она действительно не представляет цвет. Значение (или интенсивность) думают об этом как о яркости, так и о оттенке, что дает вам в каком направлении спектр (подумайте о радуге), цвет принадлежит. Значение альфа-значения не является частью самого цвета, оно скорее указывает, как определенный цвет смешивается с фоном (то есть полученный цвет рассчитывается как взвешенная сумма переднего цвета по его альфа-компоненту и цвету фона)
Теперь с точки зрения выбора визуально привлекательного цвета, который является более сложным и зависит больше от каждого индивидуального вкуса. Вы обычно достигаете высокого контрастного цвета, выбирая другой цвет, расстояние которого в цветовом пространстве HSV достаточно велико. Фактически, выбор цвета с одним из двух компонентов одинаковым (например, с той же насыщенностью и интенсивностью), но с очень разным оттенком даст вам цвет, который будет иметь высокий контраст с оригинальным. Формулы преобразования от RGB до HSV и наоборот можно найти here. Надеюсь это поможет.
Контрастные цвета для белого - любые темные. С другой стороны, контрастные цвета для черного - темные. Поэтому трудно выбрать контрастный цвет как белый, так и черный.
Это может быть какой-то средний серый цвет или любой другой цвет с одинаковой яркостью.
Яркость может быть вычислена по формуле:
int brightness = (int)(0.30 * red + 0.59 * green + 0.11 * blue);
Давайте зафиксировать значение brightness
в среднем (т.е. 128), а затем случайным образом выбирать red
и green
значения. Тогда мы можем вычислить blue
:
var random = new Random();
var red = random.Next(256);
var green = random.Next(256);
var blue = (int)(128 - 0.30 * red - 0.59 * green);
Результирующий цвет вполне контраст черного и белого.
- 1. Цвет фона переднего плана Пробел
- 2. Изменить цвет фона/переднего плана переменной powershell
- 3. Хороший цвет текста переднего плана для заданного цвета фона
- 4. WPF-стиль TabControl TabItems пользовательских цветов переднего плана/фона
- 5. Цвет переднего плана для AppBarButton
- 6. LongListSelector Цвет переднего плана
- 7. Photoshop eyedropper устанавливает цвет фона, а не переднего плана
- 8. Цвет переднего плана DataGridTextColumn
- 9. TabWidget белый цвет переднего плана?
- 10. Вычислить цвет, который отличается от фона и переднего плана
- 11. Цвет фона и переднего плана для подсветки фигурной скобки
- 12. стандартный CSS для установки цвета переднего плана/фона?
- 13. Сегментация переднего плана от фона
- 14. Цвет переднего плана всегда принимает белый
- 15. Невозможно переопределить цвет фона переднего плана в wpf
- 16. CodenameOne TextView Цвет переднего плана
- 17. WPF: несколько цветов переднего плана в ComboBox
- 18. Установить цвет переднего плана кнопки
- 19. Несколько цветов переднего плана в контрольной таблице
- 20. JFreeChart: как изменить цвет переднего плана XYPlot?
- 21. Установить цвет переднего плана и фона JButton с JColorChooser
- 22. Как изменить цвет фона/переднего плана в текстовом поле ReadOnly?
- 23. Как изменить цвет переднего плана и фона в TableCell OpenXML?
- 24. Изменить цвет переднего плана TextBlock на основе фона
- 25. CSS Марк цвет переднего плана выбранного элемента
- 26. Цвет переднего плана Datagrid не работает
- 27. Parser для извлечения фоновых пар фона переднего плана
- 28. Алгоритм для процедурного генерации цветов фона, которые хорошо сочетаются с предопределенным цветом переднего плана?
- 29. WPF, MVVM и цвет переднего плана меню
- 30. Eclipse не применяется выбор цвета переднего плана
Я предлагаю выбирать случайным образом и измерять расстояние. – Jasen
Попробуйте посмотреть здесь: http://24ways.org/2010/calculating-color-contrast/ – Icemanind