當前位置:編程學習大全網 - 源碼下載 - 求10十進制數中紅綠藍的亮度值。誰會用VB做?

求10十進制數中紅綠藍的亮度值。誰會用VB做?

私有Sub RGBToHSL( _

r壹樣長,g壹樣長,b壹樣長,_

h表示單身,s表示單身,l表示單身_

)

將最大值調成單個

Dim Min As Single

將增量變暗為單個

Dim rR為單個,rG為單個,rB為單個

rR = r / 255: rG = g / 255: rB = b / 255

{給定:rgb各in,s in [0,1],除非s=0,那麽h=UNDEFINED。}

Max =最大值(rR、rG、rB)

Min =最小值(rR、rG、rB)

l =(Max+Min)/2 ' {這是明度}

{下壹次計算飽和度}

如果最大=最小,則

開始{死亡病例}

s = 0

h = 0

結束{死亡病例}

其他

開始{半音階大小寫}

{首先計算飽和度。}

如果我& lt那麽= 0.5

s =(最大值-最小值)/(最大值+最小值)

其他

s =(最大-最小)/ (2 -最大-最小)

如果…就會結束

{接下來計算色調。}

delta =最大-最小

如果rR = Max,則

h =(rG-rB)/delta {結果顏色介於黃色和洋紅色之間}

ElseIf rG = Max Then

h = 2+(r b-rR)/delta ' {生成的顏色介於青色和黃色之間}

ElseIf rB = Max Then

h = 4+(rR-rG)/delta ' {結果顏色介於洋紅色和青色之間}

如果…就會結束

調試。打印h

h = h * 60

如果h & lt0#然後

h = h+360“{使度數非負}

如果…就會結束

end {Chromatic Case}

如果…就會結束

結束{RGB_to_HLS}

末端接頭

公共子HLSToRGB( _

h是單身,s是單身,l是單身,_

r壹樣長,g壹樣長,b壹樣長_

)

Dim rR為單個,rG為單個,rB為單個

最小尺寸為單個,最大尺寸為單個

如果s = 0,則

消色差盒:

rR = l: rG = l: rB = l

其他

彩色表殼:

delta =最大-最小

如果我& lt那麽= 0.5

s =(最大值-最小值)/(最大值+最小值)

獲取最小值:

最小值= l * (1 - s)

其他

s =(最大-最小)/ (2 -最大-最小)

獲取最小值:

Min = l - s * (1 - l)

如果…就會結束

獲取最大值:

最大值= 2 *最小長度

現在,根據部門,我們可以評估h、l、s:

if(h & lt;1)然後

rR =最大

if(h & lt;0)然後

rG =最小值

rB = rG - h *(最大-最小)

其他

rB =最小值

rG = h *(最大-最小)+ rB

如果…就會結束

else if(h & lt;3)然後

rG =最大

if(h & lt;2)然後

rB =最小值

rR = rB - (h - 2) *(最大-最小)

其他

rR =最小值

rB = (h - 2) *(最大-最小)+ rR

如果…就會結束

其他

rB =最大

if(h & lt;4)然後

rR =最小值

rG = rR - (h - 4) *(最大-最小)

其他

rG =最小值

rR = (h - 4) *(最大-最小)+ rG

如果…就會結束

如果…就會結束

如果…就會結束

r = rR * 255: g = rG * 255: b = rB * 255

末端接頭

私人功能最大值(rR為單個,rG為單個,rB為單個)為單個

if(rR & gt;rG)那麽

if(rR & gt;rB)那麽

最大值= rR

其他

最大=經常預算

如果…就會結束

其他

if(rB & gt;rG)那麽

最大=經常預算

其他

最大值= rG

如果…就會結束

如果…就會結束

結束功能

私人功能最小值(rR為單個,rG為單個,rB為單個)為單個

if(rR & lt;rG)那麽

if(rR & lt;rB)那麽

最小值= rR

其他

最小值=經常預算

如果…就會結束

其他

if(rB & lt;rG)那麽

最小值=經常預算

其他

最小值= rG

如果…就會結束

如果…就會結束

結束功能

參考資料:

/t/20050318/23/3863239 . html

  • 上一篇:萬王之王概述
  • 下一篇:漲停後還可以交易麽
  • copyright 2024編程學習大全網