明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 254|回复: 0

[源码] 如何将图片转换为base64便于发送到ocr服务器识别图片文字

  [复制链接]
发表于 3 天前 | 显示全部楼层 |阅读模式
本帖最后由 dcl1214 于 2025-12-9 08:54 编辑

很多ocr服务器接受图片的时候需要base64的数据,例如: Umi-ocr ,如何将图片转换为base64呢,请看下文

  1. (defun $tu-pian-base64$  (imagePath / adoStream xmlDoc node result)
  2.   ;调用示例:(setq base64-data ($tu-pian-base64$ "C:/123.png"))
  3.   (setq  adoStream (vl-catch-all-apply
  4.         'vlax-create-object
  5.         (list "ADODB.Stream")
  6.       )
  7.   )
  8.   (setq  xmlDoc (vl-catch-all-apply
  9.      'vlax-create-object
  10.      (list "MSXML2.DOMDocument")
  11.          )
  12.   )
  13.   (if (vl-catch-all-error-p adoStream)
  14.     (progn (princ "无法创建ADODB.Stream对象")
  15.      (setq adoStream nil)
  16.     )
  17.   )
  18.   (if (vl-catch-all-error-p xmlDoc)
  19.     (progn (princ "无法创建XML文档对象") (setq xmlDoc nil))
  20.   )
  21.   (if (and adoStream xmlDoc)
  22.     (progn
  23.       (vl-catch-all-apply
  24.   'vlax-put-property
  25.   (list adoStream "Type" 1)
  26.       )
  27.       (vl-catch-all-apply 'vlax-invoke (list adoStream "Open"))
  28.       (vl-catch-all-apply
  29.   'vlax-invoke
  30.   (list adoStream "LoadFromFile" imagePath)
  31.       )
  32.       (setq node (vl-catch-all-apply
  33.        'vlax-invoke-method
  34.        (list xmlDoc "createElement" "temp")
  35.      )
  36.       )
  37.           ; 将二进制数据写入XML节点
  38.       (vl-catch-all-apply
  39.   'vlax-put-property
  40.   (list node "dataType" "bin.base64")
  41.       )
  42.       (vl-catch-all-apply
  43.   'vlax-put-property
  44.   (list
  45.     node
  46.     "nodeTypedValue"
  47.     (vlax-invoke-method adoStream "Read" -1)
  48.   )
  49.       )
  50.       (setq result (vl-catch-all-apply
  51.          'vlax-get-property
  52.          (list node "text")
  53.        )
  54.       )          ; 获取Base64字符串
  55.       (vl-catch-all-apply
  56.   'vlax-invoke-method
  57.   (list adoStream "Close")
  58.       )          ; 清理对象
  59.       (vl-catch-all-apply 'vlax-release-object (list adoStream))
  60.       (vl-catch-all-apply 'vlax-release-object (list xmlDoc))
  61.       result
  62.     )
  63.   )
  64.   result
  65. )

"觉得好,就打赏"
还没有人打赏,支持一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-12-12 06:12 , Processed in 0.162784 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表