#易语言 #OCR #文字识别 #API调用 #桌面软件开发 #通用文字识别 #截图识别 #批量识别 #编程实战 #易语言源码 #RPA自动化
易语言OCR文字识别实战:从零打造一款自动识别工具(附完整源码)
导语:易语言作为国产可视化编程语言,凭借中文语法的低门槛特性,在Windows桌面工具开发、自动化脚本和RPA机器人领域持续拥有广泛的用户基础。本文带你从零开始,用易语言完整实现一个自动文字识别工具------无需自研OCR模型,仅需调用云端OCR API即可完成图片文字提取。文章涵盖通用文字识别、截图识别两种实战场景,提供可直接运行的完整源码,并演示如何扩展到批量处理多个文件夹的图片。不论你是易语言初学者还是老用户,都能在10分钟内完成开发。
一、本文最终效果
运行程序后,主要功能如下 :
按 F2 键,鼠标拖拽框选屏幕任意区域,程序自动截图并调用OCR API识别文字
识别结果自动复制到系统剪辑板,并弹出提示
支持批量识别整个文件夹中的图片,一次性提取所有文字
**适用场景包括:**无法复制文字的网页截图文字提取、PDF文档内容抓取、游戏窗口内的文字获取、软件界面报错信息快速抓取、批量处理大量图片中的文字信息等。
如果你只是偶尔用一下,可以先去"石榴智能文字识别在线工具"免费体验效果;如果需要集成到自己的软件或系统中,推荐使用石榴智能通用文字识别API,本文使用的正是这套API。注册后赠送免费测试额度,可以先验证效果再决定是否付费接入。

二、为什么选择OCR API而非本地OCR方案?
在易语言开发中,实现OCR主要有三种方式:
第一种是本地Tesseract方案,优点是免费可离线,但中文字库依赖问题突出,识别率较低,环境配置也比较复杂。
第二种是大漠插件找字方案,优点是识别速度快,但需要预先做字库,通用性较差。
第三种是OCR API方案,优点是易接入、识别率达99%以上、支持多种卡证票据、毫秒级响应,缺点是需要联网且API需要付费。
对于大多数易语言开发者和项目场景,OCR API是性价比最高、落地最快的方案。更重要的是,API天然支持批量处理和自动化,只需在代码外层套一个循环即可实现多文件识别。
还不确定选哪种方案的读者,建议先阅读同系列之前的文章------《在线OCR识别 vs OCR API接口:从个人工具到系统集成该怎么选?》其中详细对比了两种方案的适用场景。
三、准备工作
3.1 注册获取API凭证
以石榴智能OCR通用文字识别接口为例:
访问石榴智能API市场注册账号---在后台获取AppCode(API调用凭证)
首次注册通常赠送免费测试额度,可以先验证效果再决定是否付费接入
API文档清晰,提供多种接入语言示例(如Python、Java、PHP、C#等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)

3.2 准备精易模块
易语言中推荐使用精易模块,它提供了网页_访问S和编码_BASE64编码等函数,可以极大简化HTTP请求和Base64编码的工作量。下载模块后在易语言中引入即可使用。
3.3 需要用到的易语言知识点
窗口及热键注册(监视热键)
鼠标操作(取鼠标位置、鼠标拖动)
屏幕截图(快照命令)
Base64编码(编码_BASE64编码)
HTTP请求(可使用HTTP读文件或WinHttp.WinHttpRequest对象)
JSON解析(可使用精易模块的类_Json进行解析)
四、OCR API接口说明
本文以通用文字识别接口为例,支持中英文混合识别和印刷体:

请求方式:POST
请求头:Authorization: APPCODE 您的AppCode;Content-Type: application/json
请求参数:image_base64(图片Base64编码)或 image_url(图片URL)
返回格式:JSON
接口支持批量并发调用,单张图片响应时间通常在毫秒级
如需身份证专用识别接口(自动提取姓名、身份证号等结构化字段),可查阅之前发布的相关文章------《身份证OCR识别接口以及身份证正反面合并加识别OCR接口调用》。
五、完整代码实现
以下是一个完整的易语言OCR识别函数,可直接复制使用。
5.1 通用文字识别API调用函数
// ==============================================================================
// 免费在线体验:https://market.shiliuai.com/tools/ocr/general-text
// API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/advanced-general-ocr
// 支持免费在线体验
// API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
// ==============================================================================
版本 2
.支持库 spec
.支持库 dp1
.子程序 通用OCR_简单认证
.局部变量 局_网址, 文本型
.局部变量 局_提交数据, 文本型
.局部变量 局_提交协议头, 文本型
.局部变量 局_结果, 字节集
.局部变量 局_返回, 文本型
.局部变量 图片数据, 字节集
.局部变量 base64图片, 文本型
图片数据 = 读入文件 ("你的文件路径")
base64图片 = 编码_BASE64编码 (图片数据)
局_提交数据 = "{" + #引号 + "file_base64" + #引号 + ":" + #引号 + base64图片 + #引号 + "}"
局_网址 = "https://ocr-api.shiliuai.com/api/advanced_general_ocr/v1"
局_提交协议头 = "Authorization: APPCODE 你的AppCode" + #换行符 + "Content-Type: application/json"
局_结果 = 网页_访问_对象 (局_网址, 1, 局_提交数据, , , 局_提交协议头, , , , , , , , , , , , , )
局_返回 = 到文本 (编码_编码转换对象 (局_结果, , , ))
返回 (局_返回)
5.2 批量识别文件夹中所有图片
// ==============================================================================
// 免费在线体验:https://market.shiliuai.com/tools/ocr/general-text
// API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/advanced-general-ocr
// 支持免费在线体验
// API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
// ==============================================================================
.版本 2
.支持库 spec
.子程序 批量识别图片
.参数 文件夹路径, 文本型
.参数 AppCode, 文本型
.局部变量 局_文件列表, 文本型, , "0"
.局部变量 局_计数, 整数型
.局部变量 局_单个结果, 文本型
.局部变量 局_全部结果, 文本型
' 获取文件夹中所有图片文件(支持jpg、png、bmp)
局_文件列表 = 寻找文件 (文件夹路径 + "*.jpg", )
局_文件列表 = 寻找文件 (, )
计次循环首 (取数组成员数 (局_文件列表), 局_计数)
局_单个结果 = 通用OCR识别 (文件夹路径 + "\" + 局_文件列表 [局_计数], AppCode)
局_全部结果 = 局_全部结果 + "文件:" + 局_文件列表 [局_计数] + #换行符 + "识别结果:" + 局_单个结果 + #换行符 + #换行符
计次循环尾 ()
调试输出 ("批量识别完成,共处理 " + 到文本 (取数组成员数 (局_文件列表)) + " 个文件")
返回 (局_全部结果)
5.3 截图识别工具完整界面代码
首先,新建易语言Windows窗口程序,添加以下组件:
标签(名称:标签_状态)------显示"就绪"、"识别中..."等状态
编辑框(名称:编辑框_结果)------多行显示识别结果,允许手动修改
按钮(名称:按钮_复制)------一键复制结果到剪辑板
时钟(名称:时钟_截图)------用于延迟等待用户释放鼠标
在窗口创建完毕事件中注册热键F2:
// ==============================================================================
// 免费在线体验:https://market.shiliuai.com/tools/ocr/general-text
// API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/advanced-general-ocr
// 支持免费在线体验
// API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
// ==============================================================================
.版本 2
.子程序 __启动窗口_创建完毕
监视热键 (&_识别热键, #F2键)
标签_状态.标题 = "就绪,按 F2 开始框选识别"
热键响应,启动框选截图:
.版本 2
.子程序 _识别热键
.局部变量 鼠标起始位置, 坐标
.局部变量 鼠标结束位置, 坐标
' 记录起始鼠标位置
API_GetCursorPos (鼠标起始位置)
标签_状态.标题 = "请拖动鼠标框选识别区域..."
' 设置时钟延时,等待用户释放鼠标
时钟_截图.时钟周期 = 50
当时钟周期触发时,获取结束位置并执行截图:
.版本 2
.子程序 _时钟_截图_周期事件
.局部变量 鼠标结束位置, 坐标
.局部变量 截图数据, 字节集
' 检查鼠标左键是否按下
如果真 (取按键状态 (#左键) = 0)
时钟_截图.时钟周期 = 0
' 获取鼠标结束位置
API_GetCursorPos (鼠标结束位置)
' 执行屏幕截图
截图数据 = 快照 (, 取绝对值 (鼠标结束位置.x - 鼠标起始位置.x), 取绝对值 (鼠标结束位置.y - 鼠标起始位置.y))
' 保存截图到临时文件
写到文件 ("C:\temp_screenshot.png", 截图数据)
' 调用OCR识别
OCR识别并显示 ("C:\temp_screenshot.png")
如果真结束
最后,调用OCR识别并显示结果:
// ==============================================================================
// 免费在线体验:https://market.shiliuai.com/tools/ocr/general-text
// API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/advanced-general-ocr
// 支持免费在线体验
// API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
// ==============================================================================
.版本 2
.子程序 OCR识别并显示
.参数 图片路径, 文本型
标签_状态.标题 = "识别中,请稍候..."
编辑框_结果.内容 = ""
处理事件 ()
局_识别结果 = 通用OCR识别 (图片路径, "你的AppCode")
编辑框_结果.内容 = 局_识别结果
标签_状态.标题 = "识别完成"
' 自动复制到剪辑板
置剪辑板文本 (局_识别结果)
信息框 ("识别完成!结果已复制到剪辑板", 0, "提示")
六、常见问题与避坑指南
**第一个常见问题是图片Base64编码失败。**解决方案是需要确保先读入图片文件字节集,再调用编码_BASE64编码,编码后建议去除换行符,否则某些API会拒绝请求。
**第二个问题是HTTP请求返回401错误。**这种情况通常是AppCode填错了,或者忘记加"APPCODE "前缀(注意英文空格),请仔细核对授权格式。
**第三个问题是JSON解析失败。**需要确保返回的数据确实是JSON格式,可以先用调试输出查看返回内容,确认接口是否正常返回了预期结果。
**第四个问题是图片过大导致超时。**大多数OCR API都有图片大小限制,如果识别大图时超时,建议先将图片等比缩小后再发送请求。
**第五个问题是中文乱码。**如果识别结果中出现乱码,可能是编码处理问题,建议使用易语言的编码转换功能将结果转为GBK编码再显示。
七、后续扩展思路
学会了以上基础功能后,你还可以将OCR能力延伸到更丰富的业务场景:
身份证识别 ------如果你的业务需要自动提取姓名、身份证号等结构化字段,可以接入身份证专用OCR接口,它支持正反面自动识别和头像提取,识别准确率高达99.9%以上。相关接口说明可参考之前的文章------《身份证OCR识别接口、身份证正反面合并加识别OCR接口调用》。
发票识别 ------财务场景下自动提取发票上的金额、税号、开票日期等信息。可参考之前的文章------《发票OCR识别:秒级提取,高效财务》。
医疗票据识别 ------医疗数字化、医保结算等场景的专用识别接口。可参考之前的文章------《医疗票据识别OCR API:医院数字化与医保结算的智能引擎》。
营业执照识别------企业信息自动录入场景,一键识别执照上的统一社会信用代码、法人等信息。
多场景系统集成 ------如果你需要在更复杂的业务系统中集成OCR能力,建议阅读之前的文章------《OCR 在线识别加 API 接口实战:从网页验证到系统集成,以及2026 图文识别与图片处理技术选型全攻略》
技术选型------对不同方案还不太确定的读者,可以回顾:
《在线 OCR 识别 vs OCR API 接口:从个人工具到系统集成该怎么选?》
《文字识别OCR 在线工具 vs OCR API 接口平台:普通用户和开发者该怎么选》
这两篇对比文章,帮助你在不同场景下做出最优选择。
八、总结
本文完整演示了如何用易语言调用OCR API实现图片文字识别,包括通用文字识别、截图识别和批量处理三种实用场景。整个实现过程无需自研OCR模型,只需要掌握HTTP请求、Base64编码和JSON解析三个核心技能,就能让你的易语言应用轻松拥有"看图识字"的能力。
核心要点总结如下:
API方式相比本地OCR方案,接入门槛更低、识别效果更好、维护成本几乎为零
精易模块是易语言调用API的得力助手,建议熟练掌握
批量处理只需在单次识别函数外层套一个循环即可实现
截图识别需要掌握热键注册、鼠标操作和屏幕截图三个知识点
易语言和OCR技术的结合,让国产开发工具也能轻松拥抱人工智能。如果你有任何问题,欢迎在评论区留言交流,也欢迎阅读本系列更多文章,持续学习OCR和图片处理相关知识。
说明:本文API示例以石榴智能OCR接口为例。如需体验,可访问石榴智能文字识别在线工具免费测试识别效果,确认满意后再接入API。API完整开发文档和更多代码示例请查阅石榴智能API官方文档。
API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/advanced-general-ocr
#易语言 #OCR #文字识别 #API调用 #桌面软件开发 #通用文字识别 #截图识别 #批量识别 #编程实战 #易语言源码 #RPA自动化