有沒有什麼辦法可以給出0到16581375 (255*255*255)
之間的數字到RGB值 - 比如(0,0,0)
和16581375的0作爲(255,255,255)
?將0到16581375的數字轉換爲RGBin python
顯然,除此之外,還有一些因素,比如他對RGB值的排序以及它們本身的不同因素。
我問這個問題的原因是因爲爲了獲得更高分辨率的數學結構,我需要更多的顏色(而不是僅僅255灰色陰影)。
那麼,有什麼辦法可以做到這一點?
有沒有什麼辦法可以給出0到16581375 (255*255*255)
之間的數字到RGB值 - 比如(0,0,0)
和16581375的0作爲(255,255,255)
?將0到16581375的數字轉換爲RGBin python
顯然,除此之外,還有一些因素,比如他對RGB值的排序以及它們本身的不同因素。
我問這個問題的原因是因爲爲了獲得更高分辨率的數學結構,我需要更多的顏色(而不是僅僅255灰色陰影)。
那麼,有什麼辦法可以做到這一點?
不是很性感,但...
...給你的樣品值:
>>> n = 16581375
>>> h = "{:06X}".format(n)
>>> (int(h[0:2],16),int(h[2:4],16),int(h[4:6],16))
(253, 2, 255)
的分鐘:
>>> n = 0
>>> h = "{:06X}".format(n)
>>> (int(h[0:2],16),int(h[2:4],16),int(h[4:6],16))
(0, 0, 0)
最大:
>>> n = 256*256*256-1
>>> h = "{:06X}".format(n)
>>> (int(h[0:2],16),int(h[2:4],16),int(h[4:6],16))
(255, 255, 255)
對於數學上傾斜:
>>> n = 16581375
>>> (n//(256*256), n//256%256, n%256)
(253, 2, 255)
而對於邏輯傾斜:
>>> n = 16581375
>>> (n >> 16, (n >> 8) & 0xFF, n & 0xFF)
(253, 2, 255)
如果'n'爲0會怎麼樣?你最好使用'format(n,'06x')'來確保0填充。 – falsetru 2014-09-01 13:59:27
@falsetru使用正確的'format()'固定:/ ...我被16581375不返回(255,255,255)困擾。但實際的最大值是256 * 256 * 256-1 == 16777215,而不是OP給出的值。 – 2014-09-01 14:03:41
你的意思是16777216(256 * 256 * 256)? – falsetru 2014-09-01 13:54:03
你現在的問題是什麼?你想做一個隨機的'rgb'值嗎? – Kasramvd 2014-09-01 13:54:48
在回答上述問題時,沒有。考慮pygame只能達到(255,255,255)? – user2592835 2014-09-01 13:57:20