1

16進数のカラーコードを入力するフォームがある場合

FFFFFF

彼らの色合いをどのように判断しますか?シアン、オレンジなどのように...?

誰かが入力した場合

#FF8000

オレンジと書かれたページに色相が印刷されます。

可能であれば、これがどのように機能するかについても説明していただけますか?またはそれを説明する何かに私をリンクしますか?

HSVに変換できるように、メインのPythonスクリプト内にこのコードを入力するのは妥当でしょうか?

        #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
4

3 に答える 3

3

colorsysを参照してください。

基本的に、次のように機能します。

>>> import colorsys
>>> colorsys.rgb_to_hsv(.3, .4, .2)
(0.25, 0.5, 0.4)
于 2012-06-16T02:13:01.840 に答える
1

webcolors.txtTools \ pyncheのファイルを使用してfunction、渡された16進値の色名を返す独自のファイルを作成できます。

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
于 2012-06-16T02:46:36.580 に答える
1

これを解決して正確でわかりやすい色の指定を思い付くための簡単なアルゴリズムの方法があるかどうかはわかりません。なんらかの調べが必要だと思います。

すでに16進コード/説明のデータベースにアクセスできる場合を除いて、1つのアプローチは、キーが16進コードであり、値が対応する説明である辞書を使用することです。16進コードを検索して、対応する色の説明を表示できます。

辞書の値は、16進数のカラーコードチップテーブル(10°の間隔での色相)やこの16進数のカラーコードなど、その種類の色情報に特化した任意の数のWebページから見つけることができます。

多数の16進コードを考えると、これを最初から自分で作成することがどれほど実現可能かはわかりません。

于 2012-06-16T02:10:53.627 に答える