Use of BitBlt Function in VB.NET

In this article, we will see how to use BitBlt function in Visual Basic.

Use of BitBlt Function

If you are drawing a picture with Draw methods in the PictureBox or if you are editing a picture in the PictureBox and you want to save the changes, just use a Button named btnSave, and if you want to save the drawn image or edited image, use a Button named btnsavefile.

Give the name to the pictureBox pic and use the BitBlt function.

Function mypicture() As Bitmap

Then you can convert the Bitmap image to other formats also:

Imports System.Drawing

Imports System.Drawing.Drawing2D

Imports System.IO

 

Public Declare Function BitBlt Lib "gdi32.dll" Alias "BitBlt" (ByVal _

hdcDest As IntPtr, ByVal nXDest As Integer, ByVal nYDest As _

Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal _

hdcSrc As IntPtr, ByVal nXSrc As Integer, ByVal nYSrc As Integer, _

ByVal dwRop As System.Int32) As Long

Public memoryImage As Bitmap

Public pathmemoryImage As Bitmap ' used for bitmap saving

Public myImage As Bitmap

 

Public Function mypicture() As Bitmap

    Dim mygraphics As Graphics = pic.CreateGraphics()

    Dim s As Size = pic.Size

    myImage = New Bitmap(s.Width, s.Height, mygraphics)

    Dim memoryGraphics As Graphics = Graphics.FromImage(myImage)

    Dim dc1 As IntPtr = mygraphics.GetHdc

    Dim dc2 As IntPtr = memoryGraphics.GetHdc

    BitBlt(dc2, 0, 0, pic.ClientRectangle.Width, _

    pic.ClientRectangle.Height, dc1, 0, 0, 13369376)

    mygraphics.ReleaseHdc(dc1)

    memoryGraphics.ReleaseHdc(dc2)

    Return myImage

End Function

Private Sub btnsave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsave.Click

    mypicture()

    pic.Image = mypicture()

End Sub

 

Private Sub btnsavefile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsavefile.Click

    Dim flname As String

    mypicture()

    flname = InputBox("enter filename with extension" & vbCr & vbLf & "like .bmp or .jpg or .bmp", "for saving this image ", "mfile.gif", 20, 20)

    If Microsoft.VisualBasic.Right(flname, 3) = "bmp" Then

        If System.IO.File.Exists("D:/cuttingrangoli/chitra/") = False Then

 

            Try

                MkDir("D:/cuttingrangoli")

                MkDir("D:/cuttingrangoli/chitra")

            Catch ex As Exception

                MsgBox("direrectory exists")

            End Try

        End If

        mypicture.Save("D:/cuttingrangoli/chitra" & "/" & flname, System.Drawing.Imaging.ImageFormat.Bmp)

        MsgBox("saved in the D:/cuttingrangoli/chitra folder")

    End If

    If Microsoft.VisualBasic.Right(flname, 3) = "jpg" Then

        If System.IO.File.Exists("D:/cuttingrangoli/chitra/") = False Then

            Try

                MkDir("D:/cuttingrangoli")

                MkDir("D:/cuttingrangoli/chitra")

            Catch ex As Exception

                MsgBox("path exists")

            End Try

        End If

        mypicture.Save("D:/cuttingrangoli/chitra" & "/" & flname, System.Drawing.Imaging.ImageFormat.Jpeg)

        MsgBox("saved in the D:/cuttingrangoli/chitra folder")

    End If

    If Microsoft.VisualBasic.Right(flname, 3) = "gif" Then

        If System.IO.File.Exists("D:/cuttingrangoli/chitra/") = False Then

            Try

                MkDir("D:/cuttingrangoli")

                MkDir("D:/cuttingrangoli/chitra")

            Catch ex As Exception

                MsgBox("path exists")

            End Try

        End If

        mypicture.Save("D:/cuttingrangoli/chitra" & "/" & flname, System.Drawing.Imaging.ImageFormat.Gif)

        MsgBox("saved in the D:/cuttingrangoli/chitra folder")

    End If

End Sub