Могу ли я использовать VBScript для кодирования Base64 GIF? - PullRequest
0 голосов
/ 09 октября 2008

То, что я пытаюсь сделать, это кодировать gif-файл, чтобы включить его в документ XML. Это то, что у меня есть сейчас, но, похоже, это не работает.

Function gifToBase64(strGifFilename)
 On Error Resume Next
 Dim strBase64
 Set inputStream = WScript.CreateObject("ADODB.Stream")
 inputStream.LoadFromFile strGifFilename
 strBase64 = inputStream.Text
 Set inputStream = Nothing
 gifToBase64 = strBase64
End Function

Ответы [ 3 ]

3 голосов
/ 02 октября 2013

Недавно я написал пост об этой теме для реализаций в JScript и VBScript . Вот решение, которое я имею для VBScript:

Public Function convertImageToBase64(filePath)
  Dim inputStream
  Set inputStream = CreateObject("ADODB.Stream")
  inputStream.Open
  inputStream.Type = 1  ' adTypeBinary
  inputStream.LoadFromFile filePath
  Dim bytes: bytes = inputStream.Read
  Dim dom: Set dom = CreateObject("Microsoft.XMLDOM")
  Dim elem: Set elem = dom.createElement("tmp")
  elem.dataType = "bin.base64"
  elem.nodeTypedValue = bytes
  convertImageToBase64 = "data:image/png;base64," & Replace(elem.text, vbLf, "")
End Function
1 голос
/ 10 октября 2008

В своем комментарии к Tomalak вы заявляете, что не хотите использовать внешние библиотеки DLL, но в своем примере вы пытаетесь использовать ADODB. Поэтому я подозреваю, что вы имеете в виду, что вы не хотите устанавливать dll, которые изначально отсутствуют на платформе vanilia windows.

Если это так, то MSXML может быть вашим ответом: -

Function Base64Encode(rabyt)

    Dim dom: Set dom = CreateObject("MSXML2.DOMDocument.3.0")
    Dim elem: Set elem = dom.appendChild(dom.createElement("root"))
    elem.dataType = "bin.base64"
    elem.nodeTypedValue = rabyt

    Base64Encode = elem.Text

End Function
1 голос
/ 09 октября 2008

Посмотрите здесь: Base64 Кодирует и декодирует файлы с помощью VBScript . Этот пример опирается на бесплатный компонент XBase64 и просто предоставляет оболочку для обработки файлов.

Вы также можете перейти на чистую реализацию VBScript , но здесь вы должны позаботиться о том, чтобы обрабатывать файлы самостоятельно. Не должно быть слишком сложно, но производительность кодирования будет не такой хорошей. Для нескольких небольших файлов изображений этого будет достаточно.

Google появится больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...