【Class Library】


画像にモザイクをかける
 モザイクは、画像の特定部分をぼかして隠したりする処理のことですが、この 処理は結構簡単に行うことができます。大まかな処理は、ある間隔ごとの座標 の色をその周りの座標に指定し、ぼかしたような感じにします。その間隔の 大きさによって画像の明確さが決まります。つまり、その間隔が小さけ れば小さいほど、本来の画像に近くなります。  その間隔を徐々に小さくしていけば、簡単なモザイク表示アニメーションが 可能ですが、この方法では処理に時間がかかってしまいうまく表示されません。


★クラス内の処理内容---主な処理★

'============================================================
'Mozaiku   処理指定画像にモザイクをかける
'------引数--------------------------------------------------
'Pic        モザイクをかける画像のピクチャボックス
'TPic       モザイクをかけた画像を表示するピクチャボックス
'sx         モザイクをかける画像の左上隅x座標
'sy         モザイクをかける画像の左上隅y座標
'B_Width    モザイクをかける画像の幅
'B_Height   モザイクをかける画像の高さ
'UnitSize   モザイク1つあたりの大きさ
'============================================================
Public Sub Mozaiku(Pic As Object, TPic As Object,  _
              sx As Long, sy As Long, _
              B_Width As Long, B_Height As Long, _
              UnitSize As Long)

On Error GoTo MOZA
    Dim CountX As Long, CountY As Long
    Dim s As PIXELDATA
    Dim e As PIXELDATA
    Dim i As Long, j As Long
    Dim msg As String

    'モザイク1つあたりの大きさでいくらあるか
    CountX = B_Width \ (UnitSize)
    CountY = B_Height \ (UnitSize)

    'まず右と下の端を除いた部分にモザイクをかける
    For j = 0& To CountY - 1&
        For i = 0& To CountX - 1&
            s.x = UnitSize * i + sx
            s.y = UnitSize * j + sy
            e.x = s.x + UnitSize - 1&
            e.y = s.y + UnitSize - 1&
            s.Color = Pic.Point(s.x, s.y)
            TPic.Line (s.x, s.y)-(e.x, e.y), s.Color, BF
        Next i
    Next j

    〜以下略〜


★使用上の注意★

 このクラスのプロシージャは、ピクセル単位で取り扱っています。従って、 FormとPictureオブジェのScaleModeが3でなければなりません。 また、PictureオブジェのAppearanceを0,BorderStyleを0にしておいて下さい。


(サンプルプログラムの動作確認)

機種 PC-9821V13S
OS Windows95
開発ツール Visual Basic Ver.4.0
更新日 99/10/10

ダウンロード 公開停止

Visual Basic Ver.5.0,Ver.6.0でも問題なく動作すると思います。
なお、このコーナーに掲載されているプログラムコード、およびプログラムファ イルが原因で起きた損害などに関して一切の責任を負うことはできません。

★このコーナーに掲載されているプログラムコード、およびプログラムファ イルを無断で配布・転載することは、原則として禁止です。


Class Libraryインデックス トップページ


Copyright(C)1999-2000 Tomoya. All rights reserved.