- ベストアンサー
C#で疑似カラー
C#のWindowsアプリケーションでボタン一つでグレースケール画像に疑似カラーを付けるプログラムが作りたいのですが、疑似カラーを付けるプログラムをどのように組めばいいのかわかりません。 ここのサイトに載ってある疑似カラーのルールにしたがって作ればいいって言われてるのですが。。。↓ http://imagingsolution.blog107.fc2.com/blog-entry-171.html どなたか教えていただけないでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
お示しのURLの下のグラフのようにするのであれば Blueは モノクロ画像のビット値が63までは255、64から127まではビット値が増加する毎に4マイナス、128以上は0 Greenは ビット値が0から63まではビット値が増すごとに4加算、64から191までは255、192からはビット値が増すごとに4減算 Redは 127までは0、128から191まではビット値が増すごとに4加算、192からは255 といった具合になります したがって // 3項演算子 ? : を使っています int b = ( bitData < 64 ) ? 255 : ( ( bitData > 127 ) ? 0 : ( 256 - ( bitData - 63 ) * 4 ) ); int g = ( biData > 63 ) & ( bitData < 192 ) ? 255 : ( bitData < 64 ) ? bitData * 4 : ( 256 - ( bitData - 191) * 4 ); int r = ( bitData < 128 ) ? 0 : ( bitData > 191 ) ? 255 : ( ( bitData - 128 ) * 4; // ビットマップに直接色をのせるなら bmp.SetPixel( x, y, Color.FromArgb( r,g,b ) ); // Graphicsで描画なら Brush br = new SolidBrush( Color.FromArgb( r, g, b ) ); g.FillRectangle( br, x, 0, x + 1, 16 ); といった具合でしょう