1. ホーム
  2. colors

[解決済み] 背景色がわかっているときに、見栄えのよい文字色を見つけるには?[クローズド]

2023-04-30 17:21:12

質問

カラー ホイール、カラー ピッカー、およびカラー マッチャーの Web アプリはたくさんあるように思われます。しかし、それらのほとんどは背景色のみに焦点を当て、それぞれの背景色に印刷されるテキストは (プレビューでテキストがまったく印刷されない場合)、黒か白のどちらかになります。

私の問題はそれとは異なります。テキスト領域で使用したい背景色はわかっています。助けてほしいのは、この背景でフォントの色として使用できるいくつかの色 (多ければ多いほどよい) を選択することです。最も重要なのは、フォントが読みやすい色であること(コントラストが低すぎないこと、また目に負担がかからないように高すぎないこと)、そしてもちろん、前景と背景の組み合わせがちょうどよく見えることです。

このようなアプリケーションをご存知の方はいらっしゃいますか?私は、ダウンロードしなければならないものよりも Web アプリケーションを希望します。ありがとうございます。

どのように解決するのですか?

アルゴリズムが必要な場合は、これを試してみてください。RGB 空間から HSV 空間 (色相、彩度、明度) に色を変換します。UIフレームワークでできない場合は、この記事を参照してください。 http://en.wikipedia.org/wiki/HSL_and_HSV#Conversion_from_RGB_to_HSL_or_HSV

色相は[0,360]の中にあります。反対色を見つけるには(カラーホイールを考えてください)、180度を加えればよいのです。

h = (h + 180) % 360;

彩度と値については、反転させる。

l = 1.0 - l;
v = 1.0 - v;

RGBに変換し直します。これにより、ほとんどの組み合わせが醜く見えても、常に高いコントラストを得ることができるはずです。

醜い("ugly")部分を避けたい場合は、いくつかの良い組み合わせ("good")で表を作り、最も差が少ないものを探します。

def q(x):
    return x*x
def diff(col1, col2):
    return math.sqrt(q(col1.r-col2.r) + q(col1.g-col2.g) + q(col1.b-col2.b))

というように記述し、それを利用します。