aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 10438|回复: 4

百度OCR库baidu.client中的image参数求解

[复制链接]

34

主题

30

回帖

390

积分

新手入门

积分
390
发表于 2018-3-23 17:33:12 | 显示全部楼层 |阅读模式
baidu.client中的image参数需要是图片的二进制数据,那么,如果想提交截屏得到的图片或界面plus上的图片,怎么取出图片的二进制数据?


  1. var result = ocr.general_basic(
  2. image = string.load(本地图片);//加载图片二进制数据,可以正常
  3. )
复制代码


image = com.picture.printWindow(窗口句柄,270,60,240,20);  //会提示错误,怎么改成正确的?
image = winform.plus.foreground;  //会提示错误,怎么改成正确的?

2

主题

8

回帖

173

积分

一级会员

积分
173
QQ
发表于 2018-3-24 13:20:54 | 显示全部楼层
本帖最后由 yc51 于 2018-3-24 13:25 编辑

看下库的源代码就知道了,它是crypt.bin.encodeBase64编码的,把图片当作字符串用crypt.bin.encodeBase64编码就行了

170

主题

2184

回帖

1万

积分

管理员

积分
13236
发表于 2018-3-24 13:40:02 | 显示全部楼层
窗口截图存为文件,范例里就有,
图像文件不是你自己找来显示在控件上的吗?!为什么又要搞这么复杂去截图呢?!

毕竟图像控件是用来显示图像的,不适合用来存储文件数据。

34

主题

30

回帖

390

积分

新手入门

积分
390
 楼主| 发表于 2018-3-24 19:53:36 | 显示全部楼层
因为外部程序界面的static静态文本框是非标准控件,用IDE自带的SPY工具探测不出它的界面文本内容,所以只好先从外部程序上截图然后发到百度OCR识别文字内容.
经摸索测试,可以把截图的图像二进制数据取出来了.

//后台截图
var bmp= com.picture.printWindow(窗口句柄,270,40,240,20);

//方法1
var bmpGdipObj = gdip.bitmap(bmp)//创建GDI+位图对象
var bmpBinData = bmpGdipObj.saveToBuffer()//保存图像到内存缓冲区,返回缓冲区(buffer)

//方法2
var bmpBinData = winform.plus.foreground.saveToBuffer();//保存图像到内存缓冲区,返回缓冲区(buffer)

3

主题

3

回帖

57

积分

一级会员

积分
57
发表于 2018-3-26 21:16:38 | 显示全部楼层
刚好需要做验证码,在纠结baidu.client中的image的使用,谢谢解惑
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2024-4-19 12:55 , Processed in 0.058898 second(s), 23 queries .

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

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