qrcode.lua 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. -- qrcode.lua
  2. local qrcode = {}
  3. qrcode.__index = qrcode
  4. --[[
  5. 创建一个新的 fw_qrcode 对象
  6. @param obj 可选,已有的 fw_qrcode 对象
  7. @return 返回一个新的 qrcode 包装对象
  8. ]]
  9. function qrcode.new(obj)
  10. local instance = setmetatable({}, qrcode)
  11. if obj == nil then
  12. instance.module = fw_qrcode.new()
  13. else
  14. instance.module = obj
  15. end
  16. return instance
  17. end
  18. --[[
  19. 从原始像素解码二维码
  20. @param width 图像宽度
  21. @param height 图像高度
  22. @param pixels 像素二进制,灰度/RGB/RGBA
  23. @param channels 通道数,1/3/4,默认 1
  24. @return 识别结果数组,每项包含 ok、payload、corners 等字段
  25. ]]
  26. function qrcode:decode(width, height, pixels, channels)
  27. return self.module:decode(width, height, pixels, channels)
  28. end
  29. --[[
  30. 从 JPEG/PNG/BMP/GIF 图像二进制解码二维码
  31. @param data 图像文件内容
  32. @return 识别结果数组
  33. ]]
  34. function qrcode:decode_image(data)
  35. return self.module:decode_image(data)
  36. end
  37. --[[
  38. 从图像文件解码二维码
  39. @param path 文件路径
  40. @return 识别结果数组
  41. ]]
  42. function qrcode:decode_file(path)
  43. return self.module:decode_file(path)
  44. end
  45. function qrcode:self()
  46. return self.module:self()
  47. end
  48. function qrcode:last_error()
  49. return self.module:last_error()
  50. end
  51. function qrcode:version()
  52. return self.module:version()
  53. end
  54. return qrcode