Vba Excel。从文件加载时调整图像大小,然后将其编码为base64

时间:2016-07-12 14:35:28

标签: excel vba

使用以下函数(source)可以加载然后编码为base64图像。现在我想在>编码之前调整图像大小(保持宽高比)。我不习惯在Vba中编程,但我找不到任何可能对我有帮助的示例或片段。

Public Function EncodeFileBase64(strPicPath As String) As String
    Const adTypeBinary = 1

    Dim objXML
    Dim objDocElem

    Dim objStream

    Set objStream = CreateObject("ADODB.Stream")
    objStream.Type = adTypeBinary
    objStream.Open
    objStream.LoadFromFile (strPicPath)

    Set objXML = CreateObject("MSXml2.DOMDocument")
    Set objDocElem = objXML.CreateElement("Base64Data")
    objDocElem.DataType = "bin.base64"

    objDocElem.nodeTypedValue = objStream.Read()

    ' EncodeFileBase64 = objDocElem.Text
    EncodeFileBase64 = Replace(objDocElem.Text, vbLf, "")

    Set objXML = Nothing
    Set objDocElem = Nothing
    Set objStream = Nothing
End Function

1 个答案:

答案 0 :(得分:0)

经过大量的试探后,最实际的解决方案是:

  1. 调整图片大小
  2. 将已调整大小的图像保存到文件
  3. 加载保存的文件并将base64编码应用于此
  4. VBA没有操纵图像的工具,因此您必须使用一些外部软件。我使用ImageMagick:take a look at my solution到我的另一个帖子。