qrCodeDecode()无法解析比较,只是比较边角没有那么清晰的二维码图片,只能解析像Z.F.B,W.X之类生成出来非常清晰的二维码图片。能否增加个精度设置,下面这图片也算清晰了,也无法解析出来。
可以使用草料接口识别无法识别的二维码.
需要先把二维码上传到一个可以访问的网址,例如上图是 https://cdn.pilipa.com/uploads/20201027/fbe2079b1dd9dd26292a11c38ac691d0.png
可以使用又拍云或七牛云
然后使用下面的代码识别
function main()
local http = require "socket.http"
local ltn12 = require "ltn12"
local request_body = [[img=https://cdn.pilipa.com/uploads/20201027/fbe2079b1dd9dd26292a11c38ac691d0.png]] -- 这里是POST的数据
local response_body = {}
local res, code, response_headers = http.request{
url = "https://cli.im/apis/up/deqrimg?img", -- 这里是你提交的域名
method = "POST",
headers =
{
["Content-Type"] = "application/x-www-form-urlencoded";
["Content-Length"] = #request_body;
},
source = ltn12.source.string(request_body),
sink = ltn12.sink.table(response_body),
}
logDebug(res)
logDebug(code)
if type(response_body) == "table" then
logDebug(table.concat(response_body))
else
logDebug("Not a table:", type(response_body))
end
end
上图的返回值如下
{"status":1,"info":{"status":1,"info":"","data":["https:\/\/open.weixin.qq.com\/connect\/confirm?uuid=geEzX1fBIWqUAAAAABJRU5ErkJggg=="]}}
如果返回值里面有多余的斜杠 "\"可使用 下面代码替换
string.gsub(table.concat(response_body), '\\', '')