2012-06-16 105 views
1

如果你有,你在放十六進制顏色代碼使用Python尋找顏色的色調?

FFFFFF 

您如何確定自己的色相一種形式?像青色,橙色等...?

因此,如果有人在

#FF8000 

色調類型會在網頁說橙色上打印。

如果可能的話,你能不能也解釋這是如何工作的?或者將我鏈接到解釋它的東西?

難道是合理的進入我的主要Python腳本里面這個代碼能夠轉換到HSV?

 #RGB to HSV start 
    ONE_THIRD = 1.0/3.0 
    ONE_SIXTH = 1.0/6.0 
    TWO_THIRD = 2.0/3.0 
    def rgb_to_hsv(r, g, b): 
     maxc = max(r, g, b) 
     minc = min(r, g, b) 
     v = maxc 
     if minc == maxc: 
      return 0.0, 0.0, v 
      s = (maxc-minc)/maxc 
      rc = (maxc-r)/(maxc-minc) 
      gc = (maxc-g)/(maxc-minc) 
      bc = (maxc-b)/(maxc-minc) 
     if r == maxc: 
      h = bc-gc 
     elif g == maxc: 
      h = 2.0+rc-bc 
     else: 
      h = 4.0+gc-rc 
      h = (h/6.0) % 1.0 
      return h, s, v 

    #RGB to HSV end 
+3

看看這個:http://stackoverflow.com/questions/2453344/findt他色名從 - 一個十六進制顏色代碼 – wquist

+0

我的理解是,你想從十六進制代碼來描述顏色詞的映射,是正確的,還是我誤解你正在嘗試做什麼? – Levon

+0

請在下面看到我的評論。沒有理由,你不能把一個函數從庫中直接在你的代碼,但爲什麼你會時,你可以導入庫,並把它作爲我如下圖所示嗎?更乾淨。 – user37078

回答

3

請參閱colorsys

基本上,它的工作原理是這樣的:

>>> import colorsys 
>>> colorsys.rgb_to_hsv(.3, .4, .2) 
(0.25, 0.5, 0.4) 
+0

將這些代碼放入單獨的python腳本中是否合理? –

+0

看起來很亂,我會編輯我原來問題中的代碼。 –

+0

在評論中很難讀取大的代碼轉儲,但它看起來像你正在嘗試做一個功能,幾乎與包含的Python庫做同樣的事情。你爲什麼打擾? – user37078

1

我不知道有一個簡單的算法來解決這個問題,以提供準確和描述性的顏色指定。我認爲需要進行某種查找。

除非你有機會獲得的十六進制代碼數據庫/描述則已,一個方法是使用字典在您的鑰匙將是你的十六進制代碼,和值將是相應的描述是一條路可走。您可以查找十六進制代碼並顯示相應的顏色描述。

你可以從專門對這種那種類型的顏色信息Hexadecimal Color Code Chips Table (Hue at 10° of separation)任意數量的網頁找到適合你的字典中的值或本Hexadecimal Color Codes

雖然鑑於大量的十六進制代碼,我不肯定你會從頭開始構建自己的可行性。

+0

好吧,如果你問我已經能夠將FF0000描述爲紅色,或者FFFF00是黃色,那麼是的。我確實有。 –

+0

@AEEntity是的,基本的顏色會很容易,我認爲棘手的部分是各種不同的顏色等級/色調,不是嗎? – Levon

+0

是的。成績/色調是我在過去3天中難倒的。但我只是要求確定問題是什麼。 –

1

使用工具文件webcolors.txt \ pynche您可以創建自己的function這將返回傳遞十六進制值的顏色名稱:

with open ('Tools\pynche\webcolors.txt') as f: 
     color_dict={x.split()[1].strip():x.split()[0].strip() for x in f.readlines()[1:]} 

color_dict['fetch']=lambda x:color_dict.get(x.lower(),'color not found') 


print(color_dict['fetch']('#ffFF00')) 
print(color_dict['fetch']('#AAdd00')) 
print(color_dict['fetch']('#FFFFFF')) 

輸出:

Yellow 
color not found 
White