HSL 转 RGB (Android)

对着网上公式敲的(有些颜色有误差)

 private void hslToRgb(double h, double s, double l, int address) {
            double R, G, B;
            double var_1, var_2;
            if (s == 0) {
                R = l * 255.0;                   //RGB results = 0 ÷ 255
                G = l * 255.0;
                B = l * 255.0;
            } else {
                if (l < 0.5) {
                    var_2 = l * (1 + s);
                } else {
                    var_2 = (l + s) - (s * l);
                }
                var_1 = 2.0 * l - var_2;
                R = 255.0 * Hue2RGB(var_1, var_2, h + (1.0 / 3.0));
                G = 255.0 * Hue2RGB(var_1, var_2, h);
                B = 255.0 * Hue2RGB(var_1, var_2, h - (1.0 / 3.0));
            }
    }

private double Hue2RGB(double v1, double v2, double vH) {
        if (vH < 0) vH += 1;
        if (vH > 1) vH -= 1;
        if (6.0 * vH < 1) return v1 + (v2 - v1) * 6.0 * vH;
        if (2.0 * vH < 1) return v2;
        if (3.0 * vH < 2) return v1 + (v2 - v1) * ((2.0 / 3.0) - vH) * 6.0;

        return (v1);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值