hsl与rgb转换 a) rgb→hsl的算法描述。 步骤1:把rgb值转成【0,1】中数值。 步骤2:找出r,g和b中的最大值。 步骤3:设l=(maxcolor + mincolor)/2 步骤4:如果最大和最小的颜色值相同,即表示灰色,那么s定义为0,而h未定义并在程序中通常写成0。 步骤5:否则,测试l: if l<0.5, s=(maxcolor-mincolor)/(maxcolor + mincolor) if l>=0.5, s=(maxcolor-mincolor)/(2.0-maxcolor-mincolor) 步骤6: if r=maxcolor, h=(g-b)/(maxcolor-mincolor) if g=maxcolor, h=2.0+(b-r)/(maxcolor-mincolor) if b=maxcolor, h=4.0+(r-g)/(maxcolor-mincolor) 步骤7:从第6步的计算看,h分成0~6区域。rgb颜色空间是一个立方体而hsl颜色空间是两个六角形锥体,其中的l是rgb立方体的主对角线。因此,rgb立方体的顶点:红、黄、绿、青、蓝和品红就成为hsl六角形的顶点,而数值0~6就告诉我们h在哪个部分。h=h*60.0,如果h为负值,则加360。 20210311