どのように尋ねたらよいかわかりませんが、ここに行きます。
画面上に塗りつぶされた色付きの長方形を描きます。色はR、G、Bの形式です
次に、長方形の上にテキストを描画したいのですが、テキストの色は、最高のコントラストを提供する、つまり読みやすいものでなければなりません。
例:
黒い長方形を描くと、テキストの明らかな色は白になります。
今試したのはこれです。この関数に四角形の色を渡すと、テキストに使用する反転色が返されます。
それは機能しますが、最善の方法ではありません。
助言がありますか?
// eg. usage: Color textColor = GetInverseLuminance(rectColor);
private Color GetInverseLuminance(Color color)
{
int greyscale = (int)(255 - ((color.R * 0.30f) + (color.G * 0.59f) + (color.B * 0.11f)));
return Color.FromArgb(greyscale, greyscale, greyscale);
}