大有可为 发表于 2026-5-22 15:48:55

火山视窗python调用外部wxocr库示例

本帖最后由 大有可为 于 2026-5-23 09:14 编辑

<火山程序 类型 = "通常" 版本 = 1 />

包 火山.程序

类 启动类 <公开 基础类 = 窗口程序类>
{
    变量 主窗口对象 <类型 = 我的主窗口>

    方法 启动方法 <公开 类型 = 整数>
    {
      如果 (取反 (Python.初始化 (, 假)))
      {
            全局错误信息框 ("环境初始化失败,无法运行!", , )
            结束 ()
      }
      主窗口对象.创建主窗口 ()
      返回 (1)
    }
}

# ===

类 我的主窗口 <基础类 = 窗口 注释 = "样例主窗口" @视窗.布局 = "client_size = \"500, 300\"" 标题 = "我的主窗口">
{
    变量 编辑框1 <类型 = 编辑框 折叠2 隐藏值属性 = "0" @视窗.布局 = "id = 101\r\npos = \"10, 78, 480, 216\"" 是否允许多行 = 真 滚动条 = 纵向滚动条>
    变量 按钮1 <类型 = 按钮 折叠2 隐藏值属性 = "0" @视窗.布局 = "id = 102\r\npos = \"117, 14, 256, 48\"" 标题 = "OCR">
    变量 wcocr <类型 = Py对象类>

    方法 按钮_被单击 <接收事件 类型 = 整数 注释 = "当按钮被单击后发送此事件">
    参数 来源对象 <类型 = 按钮 注释 = "提供事件产生的具体来源对象">
    参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
    {
      如果 (来源对象 == 按钮1)
      {
            ocr识别 ()
      }
      返回 (0)
    }

    方法 ocr识别
    {
      变量 图片路径 <类型 = 文本型>
      变量 结果 <类型 = Py对象类>
      变量 ocr响应 <类型 = Py对象类>
      图片路径 = 取运行目录 () + "test.png"
      结果 = wcocr.调用方法 ("ocr", 图片路径)
      如果 (结果.不为空 ())
      {
            ocr响应 = 结果.字典_取文本键值 ("ocr_response")
            编辑框1.内容 = (文本型)ocr响应.对象到文本 ()
      }
      否则
      {
            调试输出 (Py异常类.取异常文本 ())
      }
    }

    方法 我的主窗口_创建完毕 <接收事件 类型 = 整数 注释 = "当本组件及其中所有子组件均被创建完毕后发送此事件.">
    参数 来源对象 <类型 = 我的主窗口 注释 = "提供事件产生的具体来源对象">
    参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
    {
      变量 wechat_path <类型 = 文本型>
      变量 wechatocr_exe_path <类型 = 文本型>
      wechat_path = 取模块目录 () + "wxocr2"
      wechatocr_exe_path = 取模块目录 () + "wxocr2\\WeChatOCR.exe"
      Python.添加模块搜寻目录 (wechat_path, )// 将wxocr2加到模块搜索目录中 以便导入时能找到模块
      wcocr = Python.导入模块 ("wcocr")
      如果 (wcocr.为空 ())
      {
            警告信息框 ("导入 wcocr.pyd 失败,请检查文件是否存在", )
            返回 (0)
      }
      变量 初始结果 <类型 = Py对象类>
      初始结果 = wcocr.调用方法 ("init", Py对象类.元组 (wechatocr_exe_path, wechat_path), , )// 等同于 初始结果 = wcocr.格式调用方法 ("init", "ss", wechatocr_exe_path, wechat_path)
      如果 (Py异常类.发现异常 (假))
      {
            调试输出 ("初始化时发生 Python 异常: " + Py异常类.取异常文本 ())
      }
      否则
      {
            标题 = "OCR 引擎初始化成功"
      }
      返回 (0)
    }
}


wxocr2_pyd库.zip   https://wzxz.lanzouw.com/iUnfb3q2g7uf

神之一手 发表于 2026-5-22 15:55:38

谢谢,正好需要这个

寒风 发表于 2026-5-22 16:02:41

谢谢分享

niuyanbo2021 发表于 2026-5-22 16:35:17

意思是可以调用VX、飞书、QQ等三方的ORC模块来识别图片,对吧。
这个思路不错。

大有可为 发表于 2026-5-22 16:44:34

niuyanbo2021 发表于 2026-5-22 16:35
意思是可以调用VX、飞书、QQ等三方的ORC模块来识别图片,对吧。
这个思路不错。 ...

这个只是wechat ocr 别人写好的

niuyanbo2021 发表于 2026-5-22 16:54:17

大有可为 发表于 2026-5-22 16:44
这个只是wechat ocr 别人写好的

明白

littlebld 发表于 2026-5-22 17:36:27

按照上边调用 显示:wechatocr not initialized

大有可为 发表于 2026-5-22 17:56:33

littlebld 发表于 2026-5-22 17:36
按照上边调用 显示:wechatocr not initialized
下载wxocr2_pyd库.zip解压到 运行目录   
wechat_path = 取模块目录 () + "wxocr2"

littlebld 发表于 2026-5-22 19:03:35

本帖最后由 littlebld 于 2026-5-23 09:58 编辑

大有可为 发表于 2026-5-22 17:56
下载wxocr2_pyd库.zip解压到 运行目录   
wechat_path = 取模块目录 () + "wxocr2"
...

大有可为 发表于 2026-5-23 09:13:10

本帖最后由 大有可为 于 2026-5-23 09:14 编辑

littlebld 发表于 2026-5-22 19:03



虚拟机里面测试没问题连wx都没安装
页: [1] 2
查看完整版本: 火山视窗python调用外部wxocr库示例