3

HSV または RGB のいずれかが与えられた場合、純粋な白のフォントで読み取り可能であることが保証されている背景にランダムな色を生成できるアルゴリズムはありますか?

C# を使用していますが、言語固有の実装である必要はありません。

ありがとう

これを作成しましたが、改善できると確信しています:

   public static System.Drawing.Color GenerateRandomLiteColor()
        {
            var rnd = new Random(DateTime.Now.Millisecond);
            double mul = 240.0;
            HSLColor c = new HSLColor(rnd.NextDouble() * mul,
                ((rnd.NextDouble() * 0.6) + 0.5) * mul, ((rnd.NextDouble() * 0.35) + 0.5) * mul);

            string s = c.ToRGBString();
            return c;
        }
4

2 に答える 2

2

RGB の場合、色の明るさを計算する式があります。

0.299 * R + 0.587 * G + 0.114 * B

ご覧のとおり、R、G、B の各色には独自の輝度係数があります。白い背景に読みやすいフォントを生成するには、完全にランダムな色を生成します。次に、その明るさが事前定義された定数Cより小さいかどうかを確認します。それが C を超え、一部の D > C に等しい場合R、G、B の各値にC / Dを掛けて、輝度をCに等しくします。

于 2013-03-08T18:24:10.393 に答える