Re: できました。


[コメントツリー表示を見る] [発言時刻順表示を見る]

Posted by Uz on 2000/10/18 17:02:03

In Reply to: できました。 Posted by Hirakin on 2000/10/18 13:34:22


    > 白、又は黒に近いほうに変換するほうが見やすいようです。
    この場合、反転色を求める必要ないですね。

    > If dblRevAVG > dblHalf Then
    これを逆にすれば反転色を求める必要は無いと思います。

    > p.s 緑のときは白が返されるのですが、この組み合わせだけ
    > 見難いです。何か改善の名案がございましたらよろしく
    > お願いいたします。
    この辺は難しいですね。
    昔、人が見やすい2色は色相環で180度回転させた位置の色だと
    聞いたことがあります。
    ただし、実際は白・黒で返してやったほうが見やすいのかも知れな
    いですね。
    輝度を抽出してそれを閾値によって白・黒を判断するとかかなぁ。
    0.299*R + 0.587*G + 0.114*B
    でグレースケールに変換できるので(輝度を求める)
    これが128(閾値)以上なら黒、以下なら白とか。
    これでうまくいかなかったら、
    輝度を求めるところで、RGBそれぞれの重み付けの部分の
    係数や閾値を変えるとかしてみたり。

    どうしてもうまくいかなかったら、
    3次元配列を用意してあらかじめ、色を決めておくのが
    確実かな。
    static lngColorMap(32, 32, 32) as long
    lngColorMap(0,0,0) = rgb(255,255,255)
    :
    CnvWhiteOrBlack = lngColorMap(r/16,g/16,b/16)
    これも、いやな手段ですけどね。

    ユーザに背景色を指定させるのだから、前景色の指定させられない
    かな。(出来ないんでしょうね。きっと。)

    あとは、任意の色に対応するのではなく、ある程度用意した
    色から選んでもらうか。

    すみません、最後のほうは逃げで参考にならなかったですね。


記事スレッド一覧