【问题标题】:Can I use VBScript to base64 encode a gif?我可以使用 VBScript 对 gif 进行 base64 编码吗?
【发布时间】:2008-10-09 19:23:17
【问题描述】:

我要做的是对 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

【问题讨论】:

    标签: image vbscript base64


    【解决方案1】:

    我最近在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
    

    【讨论】:

    • 太棒了...我一直在寻找这个功能很长时间...:)
    【解决方案2】:

    在您对 Tomalak 的评论中,您声明您不想使用外部 dll,但在您尝试的示例中,您尝试使用 ADODB。因此,我怀疑您的意思是您不想安装原生 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
    

    【讨论】:

      【解决方案3】:

      看看这里:Base64 Encode & Decode Files with VBScript。这个例子依赖于免费的XBase64 component 并且仅仅提供了一个用于文件处理的包装器。

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

      Google 会出现更多。

      【讨论】:

      • 那些看起来不错,但由于依赖外部 dll,我都无法使用。我正在寻找的是在 vbscript 中完成这一切。纯 VBScript 实现依赖于 ScptUtl.dll。
      • 啊,那个有效,我没有在页面上看到那个链接。谢谢托马拉克。
      猜你喜欢
      • 1970-01-01
      • 2011-12-16
      • 2018-11-10
      • 1970-01-01
      • 2013-08-27
      • 2015-09-13
      • 2020-07-23
      • 1970-01-01
      • 2016-10-23
      相关资源
      最近更新 更多