ぼかしのエフェクト

<戻る

ここに載せてあるソースコードは、参考のために載せてあります

サンプルコードは、一番下にLZHとしてあります




Option Explicit

Private Sub Command1_Click()
    Dim Cpic As New Speeding
    Dim jx As Single, jy As Single
    Dim picw As Single, pich As Single
    Dim dstHdc As Long, srcHdc As Long
    Dim k As Integer, kColor As Long
    Dim kR As Integer, kG As Integer, kB As Integer
    Dim Ang(3) As POINT_t
    
    '処理中を示すための処理をします
    Command1.Enabled = False
    Me.MousePointer = vbHourglass
    
    '4方向を決めます
    Ang(0).x = 1
    Ang(1).y = 1
    Ang(2).x = -1
    Ang(3).y = -1
    
    'hDCを作成して、代入します
    Cpic.Starting Picture2, Picture1
    dstHdc = Cpic.GetDstHDC
    srcHdc = Cpic.GetSrcHDC
    
    'サイズを代入します
    picw = Picture1.ScaleWidth
    pich = Picture1.ScaleHeight
    
    'ぼかし処理をします
    For jy = 0 To pich
        '処理に長さに応じてDoeventsを使ってください
        DoEvents
        For jx = 0 To picw
            '4方向(まわり)の色を取得してRGB値を
            'それぞれインクリメントしていきます
            For k = 0 To 3
                kColor = GetPixel(srcHdc, jx + Ang(k).x, jy + Ang(k).y)
                kR = kR + IndexRGB(kColor, 0)
                kG = kG + IndexRGB(kColor, 1)
                kB = kB + IndexRGB(kColor, 2)
            Next
            
            '平均を計算します
            kR = Abs(kR \ 4)
            kG = Abs(kG \ 4)
            kB = Abs(kB \ 4)
            
            'ピクセルを打ちます
            SetPixel dstHdc, jx, jy, RGB(kR, kG, kB)
            
            '初期化します
            kR = 0: kG = 0: kB = 0
    Next jx, jy
    
    'ぼかしのかかった拡大図を表示します
    StretchBlt Picture4.hdc, 0, 0 _
            , Picture4.ScaleWidth, Picture4.ScaleHeight _
            , Cpic.GetDstHDC _
            , 45, 80, 20, 20, vbSrcCopy
    Picture4.Refresh
    
    '処理が終了したことを示します
    Command1.Enabled = True
    Me.MousePointer = vbDefault

End Sub

Private Sub Form_Load()

    '元の画像の拡大図を表示します
    StretchBlt Picture3.hdc, 0, 0 _
            , Picture3.ScaleWidth, Picture3.ScaleHeight _
            , Picture1.hdc _
            , 45, 80, 20, 20, vbSrcCopy
    Picture3.Refresh
    
End Sub



<戻る

Sample41.lzh


http://www.vector.co.jp/authors/VA015521/