我可以使用VBScript对gif进行base64编码吗?

时间:2008-10-09 19:23:18

标签: image vbscript base64

我要做的是对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 个答案:

答案 0 :(得分:3)

我最近在JScriptVBScript中撰写了一篇关于此主题的帖子。这是我对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 :(得分:1)

看看这里:Base64 Encode & Decode Files with VBScript。此示例依赖于free XBase64 component,仅提供文件处理的包装器。

你也可以去pure VBScript implementation,但在这里你必须自己关心文件处理。应该不会太难,但编码性能会不会那么好。但是对于一些小图像文件来说就足够了。

谷歌会更多。

答案 2 :(得分:1)

在您对Tomalak的评论中,您声明您不想使用外部dll,但在您尝试的示例中,您尝试使用ADODB。因此我怀疑你的意思是你不想安装在vanilia windows平台上本身不存在的dll。

如果是这样,那么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