「平成」を感じるもの

UWSCで色識別を行いたいのですが

PeekColorで白や黒はどうにか識別して反応をえられるようになりました。
が、グレーや色つきのものがどうもうまく反応してくれません。

そこで  $CECFCEに前後の範囲を持たせたいのですが
そうするためにはどういう構文を用いればよろしいのでしょうか・・・

色々調べてみましたが 条件を自分でいれてくださいとか 赤青緑それぞれに範囲をもたせてだとか
難しくて大変こまっております・・助言いただけると嬉しいです・・

A 回答 (1件)

いや、RGBそれぞれに範囲を持たせるとしか言いようがないんですけど。

で、範囲の持たせ方ですが、$FFFFFFというのはRGBに1バイトずつ、つまり16進で2桁ずつの表記になっています。なので、これを2桁ずつに分解してそれぞれ判定すればよいことになります。

例えば50%グレー($7F7F7F)から多少ずれても認識させたい場合、すご~くベタな方法ですが、こんな感じで。

RGB=PEEKCOLOR(X,Y)
R=RGB AND $0000FF
G=(RGB AND $00FF00)/$100
B=(RGB AND $FF0000)/$10000
IFB (R>$70 AND R<$8F) AND (G>$70 AND G<$8F) AND (B>$70 AND B<$8F)
//成立したとき
ELSE
//成立しないとき
ENDIF

この判定だと、RGBがそれぞれ$71~$8Eの範囲に入っていれば、IFBの式が成立します。ということで、$CECFCEの時にも同じように、適当な範囲を与えてやればOKです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報