Results 1 to 7 of 7

Thread: [RESOLVED] Base64 to Image

  1. #1

    Thread Starter
    Member
    Join Date
    Feb 2018
    Posts
    57

    Resolved [RESOLVED] Base64 to Image

    Hello,
    Please i want to be able to copy a base64 string into a text file and the image displayed in an Image on the form. Please help.
    When i click on a command button, i want my VB6 app to convert the image from a base64 string in a text file and display the image on the form.

  2. #2
    PowerPoster
    Join Date
    Jul 2010
    Location
    NYC
    Posts
    7,653

    Re: Base64 to Image

    CryptStringToBinary/CryptBinaryToString

  3. #3
    PowerPoster wqweto's Avatar
    Join Date
    May 2011
    Location
    Sofia, Bulgaria
    Posts
    6,167

    Re: Base64 to Image

    Try this

    Code:
    Option Explicit
    
    Private Sub Command1_Click()
        Set Picture = ToPicture(FromBase64Array(ReadTextFile(Text1.Text)))
    End Sub
    
    Private Sub Form_Load()
        Const STR_PIC As String = "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAF1SUR" & _
                                  "BVFhH1ZfdDcIwDISzD4+dpSt0DtboCszS184T+lUEEsfODwqqOOmEwEl8OTtpcf5idAvY9s1vj82vj/VNfvsWzQJINN0m75wzucxLt5iqgDOxKyeWREgrig" & _
                                  "KW+6ImaCFutbhhCmAX2sI9bBGhCsB2bcFviIgYUlAmgAG9Na+RDVnIBKz3cbuP6fdXAoFMgDZ5BC0XEgHYr03mNLBA6VRQa8bg4DTnJeQ3DYkAmUDrYm7Be" & _
                                  "AzUzr08RfSVhlSAmGTZJoVacLfPGKgdyWQ2O65NAAgLYyxrQct6qQBRO8sBeVIsZAKO8kkUHeC7hNaoCJLQjnO3A4E4cT6C6XAhMpD+CeOsa1xztOjAaHY3" & _
                                  "4WjWe8AowShe7sAf9MCvS9B7D4zm5Q509QAPHCyLF4j5josHThwnYfx21XwK4qv1+BuSlSaJH4vW4kFkUw+gXOJM8tqJFdeSB4Q4nxKJAG1AAE6U4qAYP94" & _
                                  "JqwKuwB8IMF6nx8D7JwDbXaO0TP5JAAAAAElFTkSuQmCC"
        Set Picture = ToPicture(FromBase64Array(STR_PIC))
    End Sub
    
    Private Function ReadTextFile(sFile As String) As String
        With CreateObject("ADODB.Stream")
            .Open
            .Charset = "_autodetect_all"
            .LoadFromFile sFile
            ReadTextFile = .ReadText
        End With
    End Function
    
    Private Function FromBase64Array(sText As String) As Byte()
        With CreateObject("MSXML2.DOMDocument").createElement("dummy")
            .DataType = "bin.base64"
            .Text = sText
            If IsArray(.NodeTypedValue) Then
                FromBase64Array = .NodeTypedValue
            Else
                FromBase64Array = vbNullString
            End If
        End With
    End Function
    
    Private Function ToPicture(baData() As Byte) As StdPicture
        With CreateObject("WIA.Vector")
            .BinaryData = baData
            Set ToPicture = .Picture
        End With
    End Function
    cheers,
    </wqw>

  4. #4

    Thread Starter
    Member
    Join Date
    Feb 2018
    Posts
    57

    Re: Base64 to Image

    Quote Originally Posted by wqweto View Post
    Try this

    Code:
    Option Explicit
    
    Private Sub Command1_Click()
        Set Picture = ToPicture(FromBase64Array(ReadTextFile(Text1.Text)))
    End Sub
    
    Private Sub Form_Load()
        Const STR_PIC As String = "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAF1SUR" & _
                                  "BVFhH1ZfdDcIwDISzD4+dpSt0DtboCszS184T+lUEEsfODwqqOOmEwEl8OTtpcf5idAvY9s1vj82vj/VNfvsWzQJINN0m75wzucxLt5iqgDOxKyeWREgrig" & _
                                  "KW+6ImaCFutbhhCmAX2sI9bBGhCsB2bcFviIgYUlAmgAG9Na+RDVnIBKz3cbuP6fdXAoFMgDZ5BC0XEgHYr03mNLBA6VRQa8bg4DTnJeQ3DYkAmUDrYm7Be" & _
                                  "AzUzr08RfSVhlSAmGTZJoVacLfPGKgdyWQ2O65NAAgLYyxrQct6qQBRO8sBeVIsZAKO8kkUHeC7hNaoCJLQjnO3A4E4cT6C6XAhMpD+CeOsa1xztOjAaHY3" & _
                                  "4WjWe8AowShe7sAf9MCvS9B7D4zm5Q509QAPHCyLF4j5josHThwnYfx21XwK4qv1+BuSlSaJH4vW4kFkUw+gXOJM8tqJFdeSB4Q4nxKJAG1AAE6U4qAYP94" & _
                                  "JqwKuwB8IMF6nx8D7JwDbXaO0TP5JAAAAAElFTkSuQmCC"
        Set Picture = ToPicture(FromBase64Array(STR_PIC))
    End Sub
    
    Private Function ReadTextFile(sFile As String) As String
        With CreateObject("ADODB.Stream")
            .Open
            .Charset = "_autodetect_all"
            .LoadFromFile sFile
            ReadTextFile = .ReadText
        End With
    End Function
    
    Private Function FromBase64Array(sText As String) As Byte()
        With CreateObject("MSXML2.DOMDocument").createElement("dummy")
            .DataType = "bin.base64"
            .Text = sText
            If IsArray(.NodeTypedValue) Then
                FromBase64Array = .NodeTypedValue
            Else
                FromBase64Array = vbNullString
            End If
        End With
    End Function
    
    Private Function ToPicture(baData() As Byte) As StdPicture
        With CreateObject("WIA.Vector")
            .BinaryData = baData
            Set ToPicture = .Picture
        End With
    End Function
    cheers,
    </wqw>
    Thank you SOOOOO much. This snippet was exactly what i wanted.

    However, when i tried it, i got an error.

    See the error here :

    Name:  Screenshot_178.jpg
Views: 1546
Size:  24.9 KB

    Please help.
    Last edited by Tobyy; Oct 28th, 2023 at 11:22 AM.

  5. #5

  6. #6

    Thread Starter
    Member
    Join Date
    Feb 2018
    Posts
    57

    Re: Base64 to Image

    Quote Originally Posted by wqweto View Post
    Try this

    Code:
    Option Explicit
    
    Private Sub Command1_Click()
        Set Picture = ToPicture(FromBase64Array(ReadTextFile(Text1.Text)))
    End Sub
    
    Private Sub Form_Load()
        Const STR_PIC As String = "iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAF1SUR" & _
                                  "BVFhH1ZfdDcIwDISzD4+dpSt0DtboCszS184T+lUEEsfODwqqOOmEwEl8OTtpcf5idAvY9s1vj82vj/VNfvsWzQJINN0m75wzucxLt5iqgDOxKyeWREgrig" & _
                                  "KW+6ImaCFutbhhCmAX2sI9bBGhCsB2bcFviIgYUlAmgAG9Na+RDVnIBKz3cbuP6fdXAoFMgDZ5BC0XEgHYr03mNLBA6VRQa8bg4DTnJeQ3DYkAmUDrYm7Be" & _
                                  "AzUzr08RfSVhlSAmGTZJoVacLfPGKgdyWQ2O65NAAgLYyxrQct6qQBRO8sBeVIsZAKO8kkUHeC7hNaoCJLQjnO3A4E4cT6C6XAhMpD+CeOsa1xztOjAaHY3" & _
                                  "4WjWe8AowShe7sAf9MCvS9B7D4zm5Q509QAPHCyLF4j5josHThwnYfx21XwK4qv1+BuSlSaJH4vW4kFkUw+gXOJM8tqJFdeSB4Q4nxKJAG1AAE6U4qAYP94" & _
                                  "JqwKuwB8IMF6nx8D7JwDbXaO0TP5JAAAAAElFTkSuQmCC"
        Set Picture = ToPicture(FromBase64Array(STR_PIC))
    End Sub
    
    Private Function ReadTextFile(sFile As String) As String
        With CreateObject("ADODB.Stream")
            .Open
            .Charset = "_autodetect_all"
            .LoadFromFile sFile
            ReadTextFile = .ReadText
        End With
    End Function
    
    Private Function FromBase64Array(sText As String) As Byte()
        With CreateObject("MSXML2.DOMDocument").createElement("dummy")
            .DataType = "bin.base64"
            .Text = sText
            If IsArray(.NodeTypedValue) Then
                FromBase64Array = .NodeTypedValue
            Else
                FromBase64Array = vbNullString
            End If
        End With
    End Function
    
    Private Function ToPicture(baData() As Byte) As StdPicture
        With CreateObject("WIA.Vector")
            .BinaryData = baData
            Set ToPicture = .Picture
        End With
    End Function
    cheers,
    </wqw>
    THANK YOU very very very very much.
    It worked Perfectly !

    I cannot thank you enough for this help.

    Grateful.

  7. #7

    Thread Starter
    Member
    Join Date
    Feb 2018
    Posts
    57

    Re: Base64 to Image

    Thanks.

    I figured it out and its working so well now.

    Thank you for the response and guide

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width