怎么解析出TColor中的色调-亮度-饱和度?(100分)

  • 主题发起人 主题发起人 blacwet
  • 开始时间 开始时间
B

blacwet

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么解析出TColor中的色调-亮度-饱和度?
怎样实现windows中窗体标题栏颜色渐变的效果,即任意给定两种颜色,实现平滑渐变
 
我给你查查啊. 查到了分给我哦.
 
如果有的话,请发个e-mail给我!!!
 
首先,解析出R、G、B分量,GetRValue(TColor),GetGValue(TColor),GetBValue(TColor)
亮度 : R*0.299+G*0.587+B*0.114
色调、饱和度,搜索以前的帖子。

渐变,比较R、G、B分量的差异,搜索“渐变”,我记得我以前回答过的。
 
我给你公式不过这儿不好写
I = (R+G+B)/SQRT(3)
S = 1-3*min(R,G,B)/(R+G+B);
H=@ G>=B
2pi@ G<= B
@=(COS-1)[(1/2)[(R-G)+(R-b)]/SQRT((R-G)**2+(R-B)*(G-B))]
 
好像不对,与windows计算的结果不同,比如r,g,b=31,44,31,则色调、饱和、亮度为80,42,35?
 
R*0.299+G*0.587+B*0.114此公式应该是正确的,不过它的最大值是255,而windows是240。
如何转换呢?还有,色调、饱和度的公式是怎么样的?我没有找到。谢谢
 
找到了:
http://www.experts-exchange.com/questions/Q_10023634.html#1
色调是0-360的值,饱和、亮度在0-100之间,MS的颜色对话框把这三个
属性转成了0-255的值,不知有和目的,相比之下还是PhotoShop的颜色
对话框专业!
 
没错,OopsWare说得没错,我试过,效果可以,速度如果用scanline还是比较快的
 
我以将其做成了控件,可以到我的主页下载 http://oopsware.delphibbs.com
 
下载不成。。。
 
51.net 提供的服务总是出问题,在不同的时间多试几次。[:(!]
 
后退
顶部