⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 colorconverter.cs

📁 破解的飞信源代码
💻 CS
字号:
namespace Imps.Client.Utils
{
    using System;

    public sealed class ColorConverter
    {
        private ColorConverter()
        {
        }

        public static void HSL2RGB(HSL hsl, RGB rgb)
        {
            if (hsl.Saturation == 0)
            {
                rgb.Red = rgb.Green = rgb.Blue = (byte) (hsl.Luminance * 255);
            }
            else
            {
                double vH = ((double) hsl.Hue) / 360;
                double num2 = (hsl.Luminance < 0.5) ? (hsl.Luminance * (1 + hsl.Saturation)) : ((hsl.Luminance + hsl.Saturation) - (hsl.Luminance * hsl.Saturation));
                double num3 = (2 * hsl.Luminance) - num2;
                rgb.Red = (byte) (255 * Hue_2_RGB(num3, num2, vH + 0.33333333333333331));
                rgb.Green = (byte) (255 * Hue_2_RGB(num3, num2, vH));
                rgb.Blue = (byte) (255 * Hue_2_RGB(num3, num2, vH - 0.33333333333333331));
            }
        }

        private static double Hue_2_RGB(double v1, double v2, double vH)
        {
            if (vH < 0)
            {
                vH += 1;
            }
            if (vH > 1)
            {
                vH -= 1;
            }
            if ((6 * vH) < 1)
            {
                return (v1 + (((v2 - v1) * 6) * vH));
            }
            if ((2 * vH) < 1)
            {
                return v2;
            }
            if ((3 * vH) < 2)
            {
                return (v1 + (((v2 - v1) * (0.66666666666666663 - vH)) * 6));
            }
            return v1;
        }

        public static void RGB2HSL(RGB rgb, HSL hsl)
        {
            double num = ((double) rgb.Red) / 255;
            double num2 = ((double) rgb.Green) / 255;
            double num3 = ((double) rgb.Blue) / 255;
            double num4 = Math.Min(Math.Min(num, num2), num3);
            double num5 = Math.Max(Math.Max(num, num2), num3);
            double num6 = num5 - num4;
            hsl.Luminance = (num5 + num4) / 2;
            if (num6 == 0)
            {
                hsl.Hue = 0;
                hsl.Saturation = 0;
            }
            else
            {
                double num7;
                hsl.Saturation = (hsl.Luminance < 0.5) ? (num6 / (num5 + num4)) : (num6 / ((2 - num5) - num4));
                double num8 = (((num5 - num) / 6) + (num6 / 2)) / num6;
                double num9 = (((num5 - num2) / 6) + (num6 / 2)) / num6;
                double num10 = (((num5 - num3) / 6) + (num6 / 2)) / num6;
                if (num == num5)
                {
                    num7 = num10 - num9;
                }
                else if (num2 == num5)
                {
                    num7 = (0.33333333333333331 + num8) - num10;
                }
                else
                {
                    num7 = (0.66666666666666663 + num9) - num8;
                }
                if (num7 < 0)
                {
                    num7 += 1;
                }
                if (num7 > 1)
                {
                    num7 -= 1;
                }
                hsl.Hue = (int) (num7 * 360);
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -