实训要求用微信小程序实现对图像的智能识别,我选择的是用阿里云的身份证识别API对上传的身份证进行识别
参考了这个博客 微信小程序-OCR信息识别 并在这个博客基础上做了一些修改
身份证识别Api :文字识别
该api要求我们在发出请求时,需要带有图片二进制数据的base64编码,这也是整个程序的重点,获得图片base64编码
这就需要我们把上传图片转换成base64的编码,参考博客中的实现方法是用spring boot搭建一个服务器,里面写了个转换编码的方法,在微信小程序中获得图片后,把图片上传到服务器,然后进行转码,接着返回base64编码,最后通过微信的request API请求阿里云的API,从而实现识别图像,具体的可以去看那篇博客,下载他的代码,调试看看。
我这里只讲讲我改动的地方。因为我还没学spring boot,所以不懂它其中文件传输原理的,所以我就想试着看还有没有其他可以把图片转换成base64的方法
在看微信官方文档的时候,发现有个 FileSystemManager 文件管理器,里面有个readFile方法,读取本地文件内容,该方法有个属性可以指定读取文件的字符编码,这就刚好是我们所需要的 readFile
那我们现在就可以直接在小程序里获得图片的base64编码,不需要用到服务器,在原基础的改动如下
在readFile的成功回调函数按照之前的格式里面发起 HTTPS 网络请求即可,之前的上传文件函数可以删除或者注释掉
最终效果:
噢 对了,阿里的API要求上传的图片不能超过1.5m,个人觉得这有点小了......