Free Hit Counters

Thursday, January 6, 2011

Image Functions

Public Shared Function ImageToByteArray(ByVal Img As Image, ByVal Format As ImageFormat) As Byte()
        Dim MS As New MemoryStream
        Img.Save(MS, Format)
        Return MS.GetBuffer
    End Function

    Public Shared Function ByteArrayToImage(ByVal buffer() As Byte) As Image
        Using MS As New MemoryStream(buffer)
            Dim Img As Image = Image.FromStream(MS)
            Return Img
        End Using
    End Function

    Public Shared Function ImageToBase64String(ByVal img As Image, ByVal format As ImageFormat) As String
        Return Convert.ToBase64String(ImageToByteArray(img, format))
    End Function

    Public Shared Function Base64StringToImage(ByVal imageString As String) As Image
        Return ByteArrayToImage(Convert.FromBase64String(imageString))
    End Function

    Public Shared Function ImageToString(ByVal Picture As Image) As String
        If Picture Is Nothing Then Return Nothing
        Dim ReturnString As String = Nothing
        Using MS As New MemoryStream
            Picture.Save(MS, Imaging.ImageFormat.Jpeg)
            MS.Flush()
            MS.Position = 0
            Dim buffer = MS.ToArray
            ReturnString = Convert.ToBase64String(buffer)
        End Using
        Return ReturnString
    End Function

    Public Shared Function StringToImage(ByVal ImageEncodedString As String) As Image
        If String.IsNullOrEmpty(ImageEncodedString) Then Return Nothing
        Dim Img As Image = Nothing
        Dim Buffer() As Byte = Convert.FromBase64String(ImageEncodedString)
        Using MS As New MemoryStream
            MS.Position = 0
            MS.Write(Buffer, 0, Buffer.Length - 1)
            Img = Image.FromStream(MS)
        End Using
        Return Img
    End Function

    Public Shared Function StringToImageStream(ByVal ImageEncodedString As String) As Stream
        If String.IsNullOrEmpty(ImageEncodedString) Then Return Nothing
        Dim buffer = Convert.FromBase64String(ImageEncodedString)
        Dim ms = New MemoryStream(buffer)
        ms.Position = 0
        Return ms
    End Function

    Public Shared Function ImageToPixelFormat(ByVal Img As Bitmap, ByVal format As PixelFormat) As Image
        Dim bmp As New Bitmap(Img.Width, Img.Height, format)
        Using gr As Graphics = Graphics.FromImage(bmp)
            gr.DrawImage(Img, 0, 0)
        End Using
        Return bmp
    End Function

    Public Shared Sub Screenshot() 'ByVal PictureBox As PictureBox
        Dim ScreenSize As Size = New Size(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
        Dim Grab As New Bitmap(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
        Dim Screen As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(Grab)
        Screen.CopyFromScreen(New Point(0, 0), New Point(0, 0), ScreenSize)
        Grab.Save(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\image.jpg")
        'PictureBox.Image = Grab
    End Sub

No comments:

Post a Comment

Free Hit Counters