我正在研究一個需要我爲每個項目選擇「獨特」顏色的項目。有時可能會有超過400件物品。有沒有辦法選擇400種顏色最不同的顏色?它只是簡單的改變一個固定增量的RGB值?選擇距離最遠的顏色
回答
大概HSL or HSV會比RGB更好的表示,此任務。
您可能會發現,改變色調可爲眼睛提供更好的變異感,因此調整增量的方式是,對於每個X單位在S和L中更改,您都更改Y(Y < X)色調單位,以及調整X和Y,以便覆蓋所需數量的樣本。
你能想出的400個色的均勻分佈通過增加紅色,綠色和藍色依次由34
即:
- 你知道你有三個顏色通道:紅,綠色和藍色
- 需要400個不同的R,G的組合和B
- 所以每個通道上需要增量的數量是400的立方根,即約7.36
- 以跨越範圍0..255與7.36的增量,每個增量必須是大約255/7.36,即約34
會+1,但我跑出了upvotes。 :( – mcandre 2010-07-07 16:37:12
POW(+1,1./3)upvotes就足夠了 – 2010-07-07 16:43:09
+1是mcandre沒有> ;-) – smirkingman 2011-07-28 11:52:55
這是我的最終代碼。希望它可以幫助某個人。
from PIL import Image, ImageDraw
import math, colorsys, os.path
# number of color circles needed
qty = 400
# the lowest value (V in HSV) can go
vmin = 30
# calculate how much to increment value by
vrange = 100 - vmin
if (qty >= 72):
vdiff = math.floor(vrange/(qty/72))
else:
vdiff = 0
# set options
sizes = [16, 24, 32]
border_color = '000000'
border_size = 3
# initialize variables
hval = 0
sval = 50
vval = vmin
count = 0
while count < qty:
im = Image.new('RGBA', (100, 100), (0, 0, 0, 0))
draw = ImageDraw.Draw(im)
draw.ellipse((5, 5, 95, 95), fill='#'+border_color)
r, g, b = colorsys.hsv_to_rgb(hval/360.0, sval/100.0, vval/100.0)
r = int(r*255)
g = int(g*255)
b = int(b*255)
draw.ellipse((5+border_size, 5+border_size, 95-border_size, 95-border_size), fill=(r, g, b))
del draw
hexval = '%02x%02x%02x' % (r, g, b)
for size in sizes:
result = im.resize((size, size), Image.ANTIALIAS)
result.save(str(qty)+'/'+hexval+'_'+str(size)+'.png', 'PNG')
if hval + 10 < 360:
hval += 10
else:
if sval == 50:
hval = 0
sval = 100
else:
hval = 0
sval = 50
vval += vdiff
count += 1
- 1. 顏色基於距離
- 2. 選擇了距離
- 3. HSL顏色之間的距離測量
- 4. RGBA顏色空間中的顏色相似性/距離
- 5. 顏色選擇框選擇
- 6. 選擇框選擇顏色
- 7. 選擇距離特定LatLng對象最小距離的位置android
- 8. 選擇性編輯距離
- 9. Jquery選擇距離所選日期最近的工作日
- 10. 比較顏色對比以選擇最終顏色
- 11. 顏色選擇器選擇的顏色顯示
- 12. 顏色選擇器OS-X選擇錯誤的顏色
- 13. 根據距物體的距離改變顏色
- 14. QTableWidget選擇顏色
- 15. JRadioButton選擇顏色
- 16. UIButton選擇顏色
- 17. 顏色選擇器
- 18. UIButton選擇顏色
- 19. QCalendarWidget選擇顏色
- 20. JTree選擇顏色
- 21. 按緯度和經度排序點數/記錄(按距離 - 最遠離最遠)
- 22. Java中的色輪給N等距離顏色
- 23. 多邊形點離質心最遠的距離
- 24. 選擇框選項顏色:
- 25. 自舉的UI日期選擇器近距離上的最新選擇
- 26. 顏色選擇器,每個顏色選擇發送事件
- 27. jQuery的選擇值顏色
- 28. UITableViewCell的選擇顏色
- 29. 選擇標記的顏色
- 30. 的Android選擇顏色
我試圖用這個方法HSV。這是我想到http://pastebin.com/pDGZhBXB。唯一的問題是它不會創建400種獨特的顏色。有任何想法嗎? – blcArmadillo 2010-07-07 17:37:13
我不知道,但給它一個快速瀏覽一下,貌似問題是hsv_to_rgb預計三個值是0.0和1.0之間,而你正在使用度H. HTTP://docs.python。組織/庫/ colorsys.html – bashflyng 2010-07-07 21:55:33