RGB与HSB之间的彼此转换

[http://www.cesclub.com/bw/jishuzhongxin/Webjishu/2011/1128/16238.html]


YUI官方给出了定义插件的模板文件:http://developer.yahoo.com/yui/3/plugin/assets/myplugin.js.txt

2010-10-29 
博客分类: Eclipse相干 
360F#.netthread 
[引用:] [ http://www.missyuan.com/thread-379107-1-1.html ] 

第一项目组————RGB与HSB的数值转换关系: 

出自设计中国slowfool 

1.转换公式: 
声明:下列三个公式乃本人经由过程拾色器数据研习所得,并未参考其它材料,不当之处,望各位斧正。 

HSB亮度(B )=RGB最大色彩分量值/255*100%. 
HSB饱和度(S)=RGB(最大色彩分量值-最小色彩分量值)/最大色彩分量值*100%. 
HSB色相(H)=RGB最大色彩分量相位值+或-(中心色彩分量值-最小色彩分量值)/(最大色彩分量值-最小色彩分量值)*60度. 

2.公式申明: 
(1). 最大色彩分量值:如RGB(238,100,62)中的238. 
(2). 最小色彩分量值:如RGB(238,100,62)中的62. 
(3). 中心色彩分量值:如RGB(238,100,62)中的100. 
(4). 最大色彩分量相位值:RGB三基色中,纯红R色相为0度,纯绿G色相为120度,纯蓝B色相为240度。如RGB(238,100,62)的最大色彩分量相位值则为0度,RGB(62,100,238)的最大色彩分量相位值则为240度,RGB(62,238,100)的最大色彩分量相位值则为120度。 
(5).+或-:RGB值中,若中心色彩分量在最大色彩分量相位的逆时针标的目标,则应相加;中心色彩分量在最大色彩分量相位的顺时针标的目标,则应相减。例如:RGB(62,238,100),最大色彩分量为G,中心色彩分量为B,B在G的逆时针标的目标,中心色彩分量B对最大色彩分量G有逆时针标的目标牵拉色相使度数加大的感化,故应相加。再如:RGB(100,238,62),最大色彩分量为G,中心色彩分量为R,R在G的顺时针标的目标,中心色彩分量R对最大色彩分量G有顺时针标的目标牵拉色相使度数减小的感化,故应相减。 
(6).60度:任何一个中心色彩分量对最大色彩分量的色相牵拉感化,在共同减掉最小色彩分量的影响后,其最大牵拉度数为60度(即120度相位差的一半,也就是中心色彩分量增大到与最大色彩分量相等时)。 

__________________________________________________________________________________ 



[引用:] [http://www.codeproject.com/KB/recipes/colorspace1.aspx] 

[引用:] [http://www.cnblogs.com/zhuliangxiong/archive/2009/05/15/1457201.html] 




在Manipulating colors in .NET - Part 1中,作者具体地介绍了各类色彩模型以及各类色彩之间的转换.现记录如下,以备后用. 

1.RGB RGB是一种加色模型,就是将不合比例的Red/Green/Blue混淆在一路获得新色彩.凡是RGB色彩模型默示为: 



2.HSB(HSV) 经由过程色相/饱和度/亮度三要素来表达色彩. 

  H(Hue):默示色彩的类型(例如红色,绿色或者).取值局限为0—360.此中每一个值代表一种色彩. 

  S(Saturation):色彩的饱和度.从0到1.有时辰也称为纯度.(0默示灰度图,1默示纯的色彩) 

  B(Brightness or Value):色彩的通亮程度.从0到1.(0默示黑色,1默示特定饱和度的色彩) 



   

RGB=>HSB的转换公式如下: 





V=MAX 



HSB=>RGB的公式如下: 

H ? [0, 360] 

S, V, R, G, B ? [0, 1] 

Hi = [H / 60] mod 6 

f = (H / 60) - Hi 

p = V (1 - S) 

q = V (1 - f S) 

t = V (1 - (1 - f ) S) 

if Hi = 0 ? R = V, G = t, B = p 
if Hi = 1 ? R = q, G = V, B = p 
if Hi = 2 ? R = p, G = V, B = t 
if Hi = 3 ? R = p, G = q, B = V 
if Hi = 4 ? R = t, G = p, B = V 
if Hi = 5 ? R = V, G = p, B = q 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值