# module-qrcode FastWeb - 二维码识别模块(基于 [quirc](https://github.com/dlbeer/quirc)) ## 功能 从图像中识别并解码二维码,支持旋转、倾斜,以及同一张图中的多个码。 ## Lua 用法 ```lua local qrcode = require("qrcode") local qr = qrcode.new() -- 从文件解码(JPEG / PNG / BMP / GIF) local codes = qr:decode_file("/tmp/qr.png") -- 从图像二进制解码 local codes = qr:decode_image(file_data) -- 从原始像素解码,channels: 1=灰度, 3=RGB, 4=RGBA local codes = qr:decode(width, height, pixels, 3) for i, code in ipairs(codes) do if code.ok then print(code.payload, code.version, code.ecc, code.data_type_name) else print("decode failed:", code.error) end end print(qr:last_error()) print(qr:version()) ``` 识别成功时,结果项字段: | 字段 | 说明 | | --- | --- | | `ok` | 是否解码成功 | | `payload` | 码内容(二进制安全字符串) | | `payload_len` | 内容长度 | | `version` | QR 版本 1-40 | | `ecc` / `ecc_level` | 纠错级别(L/M/Q/H) | | `data_type_name` | NUMERIC / ALPHA / BYTE / KANJI | | `corners` | 四个角点 `{x,y}`,左上起顺时针 | | `error` | 解码失败时的错误信息 | ## 构建 ```bash ./build.sh ``` 产物:`target/libqrcode.so` 与 `target/qrcode.lua`