Дайте это попробовать. Я написал две функции DecodeBase64
и WriteByteArrayToFile
. DecodeBase64
принимает строку в кодировке Base64 и возвращает Byte()
из этого. WriteByteArrayToFile
принимает Byte()
и FilePath в виде строки и запишет Byte()
в файл.
Обновите этот раздел "YOURPATHGOESHERE\Picture.png"
в Example
Sub, указав допустимый путь к файлу в ваш компьютер, посмотрите, делает ли то, что вы после. Я получаю очень маленькую картину того, что кажется квадратом при запуске кода ниже.
Код
Option Explicit
'Decode Base64 string into a byte array
Public Function DecodeBase64(ByVal Base64String As String) As Byte()
With CreateObject("MSXML2.DOMDocument").createElement("b64")
.DataType = "bin.base64"
.Text = Base64String
DecodeBase64 = .nodeTypedValue
End With
End Function
'Take a byte array and write to a file
Public Sub WriteByteArrayToFile(FileData() As Byte, ByVal FilePath As String)
Dim FileNumber As Long: FileNumber = FreeFile
Open FilePath For Binary Access Write As #FileNumber
Put #FileNumber, 1, FileData
Close #FileNumber
End Sub
'Run from here
Sub example()
WriteByteArrayToFile DecodeBase64("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR4nGP6zwAAAgcBApocMXEAAAAASUVORK5CYII="), "YOURPATHGOESHERE\Picture.png"
End Sub