使用以下函数(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
答案 0 :(得分:0)
经过大量的试探后,最实际的解决方案是:
VBA没有操纵图像的工具,因此您必须使用一些外部软件。我使用ImageMagick:take a look at my solution到我的另一个帖子。