Шестнадцатеричный цвет - формула для создания этого Brigter

Позвольте мне подчеркнуть один аргумент статьи Miller's: Когда Вы начинаете вручную разрешать отношения зависимости между различными модулями и приходиться нелегко для обеспечения порядка сборки, Вы эффективно повторно реализуете логику, которую система сборки была сделана решить во-первых. Построение, надежное рекурсивный, делает системы сборки, очень твердо. Реальные проекты имеют много взаимозависимых частей, порядок сборки которых нетривиален для выяснения и таким образом, эту задачу нужно оставить системе сборки. Однако это может только разрешить, что проблема, если это имеет глобальное знание системы.

, Кроме того, рекурсивный делают системы сборки, являются склонными для разваливаний при создании одновременно на нескольких процессорах/ядрах. В то время как эти системы сборки, может казаться, работают надежно над единственным процессором, много недостающих зависимостей идут необнаруженные, пока Вы не начинаете разрабатывать свой проект параллельно. Я работал с рекурсивным, делают систему сборки, которая продолжила работать до четырех процессоров, но внезапно отказала на машине с двумя квадратическими ядрами. Затем я сталкивался с другой проблемой: Эти проблемы параллелизма почти невозможны для отладки, и я закончил тем, что рисовал блок-схему целой системы для выяснения то, что пошло не так, как надо.

Для возвращения к вопросу мне трудно думать о серьезных основаниях, почему каждый хочет использовать рекурсивный, делают. Производительность во время выполнения нерекурсивного GNU Делает системы сборки, твердо биться и, вполне обратное, многие рекурсивные заставляют системы иметь серьезные проблемы производительности (слабая параллельная поддержка сборки является снова частью проблемы). Существует бумага , в котором я оценил (рекурсивное) определенное, Делают систему сборки и сравнил его с портом SCons. Результаты проверки производительности не являются представительными, потому что система сборки была очень нестандартна, но в данном случае порт SCons был на самом деле быстрее.

Нижняя строка: Если Вы действительно хотите использовать, Делают для управления сборками программного обеспечения, пойдите для нерекурсивного, Делают, потому что это делает жизнь намного легче в конечном счете. Лично, я использовал бы SCons по причинам удобства использования (или Грабли - в основном любая система сборки с помощью современного языка сценариев и который имеет неявную поддержку зависимости).

9
задан Ben Shelock 27 December 2009 в 05:31
поделиться

3 ответа

Вы можете преобразовать в HSV (используя формулу из википедии здесь ). Затем увеличьте значение V , затем выполните обратное преобразование, используя формулу из нижнего на той же странице.

17
ответ дан 4 December 2019 в 08:52
поделиться

Стандартный ответ - преобразовать в другое цветовое пространство, имеющее яркость на одной оси, а затем напрямую управлять этим значением. Мне не нравится этот ответ, потому что он не говорит вам, что вы получите, когда превысите цветовую гамму.

Если под ярче вы подразумеваете более интенсивный, вы можете просто умножить каждое значение R, G, B. на то же значение, где это значение> 1. Например, чтобы сделать изображение ярче на 20%, умножьте каждое значение на 1,2.

Если какое-либо из полученных значений больше 255, вы превысили пределы Цветовой охват RGB. Вероятно, лучше всего в этом случае приблизить цвет к белому, чтобы он стал светлее, но менее насыщенным или интенсивным. Давайте возьмем пример начального RGB (50,192,240), который вы хотите сделать на 20% ярче. Результат: (60,230, 288) - красный и зеленый находятся в пределах границ, но синий слишком яркий и вылез за край. Возьмите избыток и распределите его поровну между другими цветами - 288–255 равно 33, поэтому добавьте 16,5 к красному и зеленому; округление дает результат (77 247 255).

8
ответ дан 4 December 2019 в 08:52
поделиться

Что ж, поскольку цвета - это всего лишь 3 байта r / g / b, вы можете преобразовать каждый байт в int (0-255) и увеличить каждый байт на такое же произвольное число. Закончите, преобразовав каждый байт обратно в шестнадцатеричный. Пример:

Начиная с цвета: # 224466

Преобразовано в целые числа, то есть r = 34 , g = 68 и b = 102

Приращение на произвольное число (скажем, 60) дает r = 94 , g = 128 и b = 162

Преобразование обратно в шестнадцатеричное дает: # 5E80A2

Обратите внимание, что верхний предел равен 255 (белый), а нижний - 0 (черный)

РЕДАКТИРОВАТЬ: Как отмечает Марк, в этом есть недостаток. Это можно исправить с помощью дополнительного правила: если начальное значение равно 0, не меняйте его;)

-1
ответ дан 4 December 2019 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: