高速に画像を転送

<戻る

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

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





Option Explicit

'画像をそのままの大きさで転送
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

'画像を拡大・縮小して転送
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

Private Sub Command1_Click()
    Dim picWidth, picHeight
    
    'Picture1の幅を代入
    picWidth = Picture1.ScaleWidth
    picHeight = Picture1.ScaleHeight
    
    'どのOptionボタンが選択されているか判断
    If Option1.Value = True Then
        画像をそのまま転送
        BitBlt Picture2.hdc, 0, 0, picWidth, picHeight, Picture1.hdc, 0, 0, vbSrcCopy
    ElseIf Option2.Value = True Then
        '画像を拡大 or 縮小して転送
        StretchBlt Picture2.hdc, 0, 0, picWidth, picHeight, Picture1.hdc, 0, 0, picWidth / 2, picHeight / 2, vbSrcCopy
    End If
    Picture2.Refresh '画像の表示
End Sub

Private Sub Command2_Click()
    Picture2.Cls 'Picture2の画像をクリアにする
End Sub



<戻る

Sample09.lzh


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