VBA Base64 изображения PNG декодировать - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть большая проблема в соскабливания веб-страницы

1002 * мне нужно было выскабливание IMG С.Р. c adrress, но результат "данные: изображение / PNG; base64, iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR4nGP6zwAAAgcBApocMXEAAAAASUVORK5CYII =" 1004 * Сначала я Бесполезный не так, но после того, как я это понял, но я не могу декодировать

Я пытаюсь найти изображение base64 png, но вообще не могу попытаться кодировать. Мне нужна твоя помощь

1 Ответ

0 голосов
/ 11 апреля 2020

Дайте это попробовать. Я написал две функции 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
...