说明:
- 由于
GitHub
上没有一个 第三方库
可以 解析二维码完全不出问题
- 问题 1:
截断,没有解析完全
- 问题 2:
直接无法解析
- 所以本人
白祤星
通过 站长之家
的 接口
自己做了一个 解析二维码
的实例
- 这个也可以叫
二维码解码
暂时先将就着用吧
代码实例:
package main
import (
"bytes"
"io"
"io/ioutil"
"mime/multipart"
"net/http"
"os"
)
func main() {
// 输入解析的图片,返回解析好的数据
url := qrcodeDecode(`qr1.png`)
println(url)
}
// 二维码解码
// 参数:要解析的图片
func qrcodeDecode(img string) string {
fh, err := os.Open(img)
panicErr(err)
defer fh.Close()
bodyBuf := &bytes.Buffer{}
bodyWriter := multipart.NewWriter(bodyBuf)
bodyWriter.WriteField(`Filename`, fh.Name())
bodyWriter.WriteField(`Upload`, `Submit Query`)
fileWriter, err := bodyWriter.CreateFormFile(`Filedata`, img)
panicErr(err)
_, err = io.Copy(fileWriter, fh)
panicErr(err)
contentType := bodyWriter.FormDataContentType()
bodyWriter.Close()
resp, err := http.Post(`http://tool.chinaz.com/ajaxseo.aspx?t=pload`, contentType, bodyBuf)
resp_body, err := ioutil.ReadAll(resp.Body)
panicErr(err)
defer resp.Body.Close()
str := string(resp_body)
str_len := len(str)
return str[35 : str_len-7]
}
// 统一处理错误函数
func panicErr(err error) {
if err != nil {
panic(err)
}
}