火山视窗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
谢谢,正好需要这个 谢谢分享
意思是可以调用VX、飞书、QQ等三方的ORC模块来识别图片,对吧。
这个思路不错。 niuyanbo2021 发表于 2026-5-22 16:35
意思是可以调用VX、飞书、QQ等三方的ORC模块来识别图片,对吧。
这个思路不错。 ...
这个只是wechat ocr 别人写好的 大有可为 发表于 2026-5-22 16:44
这个只是wechat ocr 别人写好的
明白 按照上边调用 显示:wechatocr not initialized littlebld 发表于 2026-5-22 17:36
按照上边调用 显示:wechatocr not initialized
下载wxocr2_pyd库.zip解压到 运行目录
wechat_path = 取模块目录 () + "wxocr2"
本帖最后由 littlebld 于 2026-5-23 09:58 编辑
大有可为 发表于 2026-5-22 17:56
下载wxocr2_pyd库.zip解压到 运行目录
wechat_path = 取模块目录 () + "wxocr2"
...
本帖最后由 大有可为 于 2026-5-23 09:14 编辑
littlebld 发表于 2026-5-22 19:03
虚拟机里面测试没问题连wx都没安装
页:
[1]
2