エンボス/エンゲイブ画像を作成
(16bitカラー以上必須、32bitカラー推奨)
VBの命令を応用するだけでエンボス/エンゲイブ画像を作成することが出来ます。
作 成 手 順 |
1.ピクチャーボックスに変換する画像を読みこむ
↓
2.変換する位置の色をPoint文などで読みこみその色をR(赤)、G(緑)、B(青)に分解。
(画像の大きさだけ一括して読みこむ)
↓
3.RとGとBを足し、3で割る(平均を求める。つまりグレイスケール化)
↓
4.周りの色と判定し(備考を参照)影にするのか(黒、白ともに)、しないのか決定
↓
5.Pset文などでピクチャーボックスなどに描画
↓
6.画像の大きさだけ3から5を繰り返す
↓
7.できあがり
注:ピクチャーボックスのAutoReviewプロパティがTrueになっている必要があります
また描画時にウィンドウを最小化しておくと描画スピードが速くなります
<備考:影の判定方法>
グレイスケールに画像を変換したときの各RGBの値が下の表のようになっていたとします。
|
B |
|
A |
C |
D |
E |
このとき、Cの影の判定方法はまず、白い影にするのか黒い影にするのかはひとまずおいておいて、影か影でないのかを判定します。それには以下の式を使用します
(A+B+D+E)/4=c
このとき式の判定がTrueなら、周りとの色の違いはなく(厳密にはそうではない場合もありますが)影は無しです。この式の判定がFalseならば影をつけなければなりません。そのときの影の色(白または黒)の判定には以下の式で対応します。
ABS((A+B)/2-c)>ABS((D+E)/2-c)
この判定が真ならば影は黒となり、偽なら白(エンゲイブの場合は逆)となります。
厳密にはこれだけではいけないのですが、基本的にはこれだけでエンボス/エンゲイブ化が可能です。詳しくはサンプルを見てください。
サ ン プ ル プ ロ グ ラ ム |
ちょっとこのサンプルは難しめかもしれないです。