1. ホーム
  2. user-interface

与えられた背景色に対して、良いテキストの前景色

2023-09-09 20:48:32

質問

私は色選択ボタンを描いていて、RGBで与えられた背景色に対して良いテキスト色(前景)を得るための素敵でシンプルな公式を探しています。

単純な試みは、単に補色を取ることですが、これは、純粋な青や純粋な赤のような色のための奇妙な外観のボタンを生成します。

これを行う何かよく知られたものがあるのでしょうか?

もしそれが全く重要であるならば、私はQTを使用しています。

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

最大限の読みやすさを得るためには、一緒に働かない色相になることなく、最大の輝度コントラストを得たいものです。これを実現するための最も一貫した方法は または を使うことができます。より美的に優れたスキームを思いつくことができるかもしれませんが、どれも読みやすくはならないでしょう。

黒か白かを選ぶには、背景の明るさを知る必要があります。これは、2つの要因から、もう少し複雑になります。

  • 個々の原色である赤、緑、青の知覚される明るさは同一ではありません。私ができる最も簡単なアドバイスは、RGB をグレーに変換する伝統的な数式、R*0.299 + G*0.587 + B*0.114 を使用することです。他にもたくさんの公式があります。

  • ディスプレイに適用されるガンマ曲線は、中間のグレイ値を予想以上に高くします。これは、128 ではなく 186 を中間の値として使用することで簡単に解決できます。186 より小さいものは白いテキストを使用し、186 より大きいものは黒いテキストを使用する必要があります。