Ответ 1
Rich Newman создал класс HSLColor, который можно использовать вместо System.Drawing.Color.
Как создать цвет С# из значений HSL?
Rich Newman создал класс HSLColor, который можно использовать вместо System.Drawing.Color.
Добавьте следующую строку ниже в ", используя пространства имен в файле кода:
using System.Runtime.InteropServices
и с помощью P/Invoke добавьте следующую функцию:
[DllImport("shlwapi.dll")]
public static extern int ColorHLSToRGB(int H, int L, int S);
В любом классе, который вы хотите в своем проекте.
Если у вас есть цвет в оттенке, яркости и насыщенности в виде целых чисел, затем дайте эти значения этой функции, и нужный цвет RGB будет возвращен как целое. Затем используйте ColorTranslator.FromWin32 для перевода возвращаемого цвета rgb как целого в структуру System.Drawing.Color.
Другой способ - использовать метод перегрузки Color.FromArgb(Int32), чтобы создать цвет, который вы хотите, в качестве структуры System.Drawing.Color из этого целого.
Другой способ - создать экземпляр класса ColorConverter, а затем вызвать метод ConvertFrom и присвоить ему целое число RGB Color, возвращаемое с функцию ColorHLSToRGB или вызов метода ConvertTo с тем же самым первым аргументом, но во втором вводе аргумента typeof(System.Drawing.Color)
. Затем преобразовать возвращаемый объект в тип структуры System.Drawing.Color.
Результат - именно то, что вы ищете и ожидаете!
Вы также можете попробовать другие алгоритмы или способы, которые вы можете искать, узнавать и узнавать в Интернете, о том, как преобразовать цвет RGB как целое в структуру System.Drawing.Color или как преобразовать значения HLS в виде трех целых чисел в систему .Drawing.Color структура!