• ベストアンサー

3つの値を1つの値に

今色を使ったプログラムを組んでいて、RGBの3値を利用しています。 例えば R:157 G:0 B:0 と R:0 G:0 B:157 これらのRGB値を1つの値に計算し、 二つが違う色であることを判別したい場合 どのような計算方法を利用すればいいでしょうか。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • KEIS050162
  • ベストアンサー率47% (890/1879)
回答No.1

R,G,Bの値の範囲が0~255である場合、 10進数で計算するなら下記などはいかがでしょうか。 COL = R * 1000000 + G * 1000 + B ただしこれだと桁数が異常に大きくなるのと、16進数の方が色々扱いやすいので、 COL = R * 10000H + G * 100H + B の方が良いかもしれませんね。 COLから各色を抽出するにも16進数の方が便利でしょう。 ご参考に。

mitti0157
質問者

お礼

参考にさせて頂きます。 お二方、早々と返答ありがとうございました。

その他の回答 (1)

  • lisyaoran
  • ベストアンサー率50% (202/398)
回答No.2

前の方が仰る通り、16進数8bitで扱うのが望ましいかと思います。 例1は9D0000 例2は00009D となるため、簡単に比較することができます。