画像にモザイクをかける
(16bitカラー以上必須、32bitカラー推奨)
VBの命令を応用するだけで簡単にモザイクをかけることが出来ます。
操 作 手 順 |
1.ピクチャーボックスに変換する画像を読みこむ
↓
2.変換する位置(モザイクの大きさの分)の位置の色を読みこみ、RGBに分解
↓
3、それぞれの色を足して足した数で割る(平均を求める)
↓
4.RGB関数で色を求める(赤、緑、青の合成)
↓
5.Line文などでピクチャーボックスなどに描画
↓
6.画像の大きさだけ2から5を繰り返す
↓
7.できあがり
図解1:この9点の色を求める(モザイクの大きさは3*3)
カッコ内は色の赤の要素、緑の要素、青の要素。
(255,0,0) | (255,100,0) | (255,255,0) |
(255,0,100) | (100,100,100) | (255,255,100) |
(255,0,255) | (255,100,255) | (255,255,255) |
すべての色の要素を足して、要素の分(ここでは9)で割れば良い。
赤の要素:(255+255+255+255+100+255+255+255+255)/9
緑の要素:(0+100+255+0+100+255+0+100+255)/9
青の要素:(0+0+0+100+100+100+255+255+255)/9
これをRGB関数で色のLong値に合成し表示すれば完了。
注:ピクチャーボックスのAutoReviewプロパティがTrueになっている必要があります
また描画時にウィンドウを最小化しておくと描画スピードが速くなります
見ての通り作成方法はほとんど画像をぼかす方法と同じです。
サ ン プ ル プ ロ グ ラ ム |
VisualBasic4以上で動作するサンプルプログラムです。かなり綺麗に変換できます。
毎度の事ながら色取得や設定にAPIを使用せず、VBだけで行っているので動作が遅いです。分かりやすさ優先という事で。