如何将图片转换为base64便于发送到ocr服务器识别图片文字
本帖最后由 dcl1214 于 2025-12-9 08:54 编辑很多ocr服务器接受图片的时候需要base64的数据,例如: Umi-ocr ,如何将图片转换为base64呢,请看下文
(defun $tu-pian-base64$(imagePath / adoStream xmlDoc node result)
;调用示例:(setq base64-data ($tu-pian-base64$ "C:/123.png"))
(setqadoStream (vl-catch-all-apply
'vlax-create-object
(list "ADODB.Stream")
)
)
(setqxmlDoc (vl-catch-all-apply
'vlax-create-object
(list "MSXML2.DOMDocument")
)
)
(if (vl-catch-all-error-p adoStream)
(progn (princ "无法创建ADODB.Stream对象")
(setq adoStream nil)
)
)
(if (vl-catch-all-error-p xmlDoc)
(progn (princ "无法创建XML文档对象") (setq xmlDoc nil))
)
(if (and adoStream xmlDoc)
(progn
(vl-catch-all-apply
'vlax-put-property
(list adoStream "Type" 1)
)
(vl-catch-all-apply 'vlax-invoke (list adoStream "Open"))
(vl-catch-all-apply
'vlax-invoke
(list adoStream "LoadFromFile" imagePath)
)
(setq node (vl-catch-all-apply
'vlax-invoke-method
(list xmlDoc "createElement" "temp")
)
)
; 将二进制数据写入XML节点
(vl-catch-all-apply
'vlax-put-property
(list node "dataType" "bin.base64")
)
(vl-catch-all-apply
'vlax-put-property
(list
node
"nodeTypedValue"
(vlax-invoke-method adoStream "Read" -1)
)
)
(setq result (vl-catch-all-apply
'vlax-get-property
(list node "text")
)
) ; 获取Base64字符串
(vl-catch-all-apply
'vlax-invoke-method
(list adoStream "Close")
) ; 清理对象
(vl-catch-all-apply 'vlax-release-object (list adoStream))
(vl-catch-all-apply 'vlax-release-object (list xmlDoc))
result
)
)
result
)
页:
[1]