2011年04月21日

Colorの反転方法あれこれ(C#)

Colorを反転させるメソッドが標準に無さそうだったので、その方法を幾つか紹介します。

方法1

// カラー定義
Color color = Color.Blue;
// 反転処理
color = Color.FromArgb(color.ToArgb() ^ 0xFFFFFF);

ToArgbにより、Alpha、Red、Green、Blueの色要素を32bitの数値に変換し、そのうち下位24bitをビット演算で反転させています。上位8bitはAlphaなので反転させません。

方法2

// カラー定義
Color color = Color.Blue;
// 反転処理
color = Color.FromArgb(
                color.R ^ 0xFF, 
                color.G ^ 0xFF, 
                color.B ^ 0xFF);

Red、Green、Blueの色要素を、R/G/Bのメンバ変数により取得し、それぞれを反転させて、FromArgbでColorに設定しています。特定の色要素だけ反転させたいときは、こちらの方がやりやすいです。

方法3

// カラー定義
Color color = Color.Blue;
// 反転処理
color = Color.FromArgb(
                (byte)~color.R, 
                (byte)~color.G, 
                (byte)~color.B);

方法2と同じですが、反転のさせ方が違います。どちらを使うかはお好みで。

良かったらクリックしてください
にほんブログ村 IT技術ブログ プログラム・プログラマーへ  人気ブログランキングへ

posted by among at 22:35 | Comment(0) | TrackBack(0) | C#
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/44122294

この記事へのトラックバック