windows画图板 ESL转RGB 实现区间渐变色

这篇博客记录了如何在Windows画图板中通过ESL(色调、饱和度、亮度)参数实现从红色到绿色的渐变效果。通过调整ESL值,创建了一个函数getESL来计算不同区间的E、S、L值。同时,介绍了RGB到HSL以及HSL到RGB的转换算法,以理解颜色变化的原理。
摘要由CSDN通过智能技术生成

2021.6.21记载

根据数值确定渐变范围【-1,1】

主要实现红色向绿色的渐变效果

 

色调(E)调低偏向红色,调高偏向绿色[0-80]

饱和度(S)越高颜色越深,越低颜色越浅[0-240]

亮度(L)决定颜色的明暗程度[0-240]


void getESL(float val,float &e,float &s,float &l)
{
    float e1,s1,l1;

    double first=-1;    
    double second=0;
    double three=1;

    if (val<first)
    {
        e1=0;
        s1=240;
        l1=120;
    }
    else if (val >= first && val <second)
    {    

        //可以调整ESL的取值范围来实现想要的渐变颜色
        float a=40*(abs(val)/1.0);
        float b=40*(abs(val)/1.0);
        float c=40*(abs(val)/1.0);

        e1=40-a;
        s1=200+b;
        l1=100+(100-c);
    }
    else if (val >= second && val <three)
    {    
        float a=40*(abs(val)/1.0);
        float b=40*(abs(val)/1.0);
        float c=40*(abs(val)/1.0);

        e1=40+a;
        s1=200+b;
        l1=100+(100-c);
    }
    else
    {
        e1&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值