Day12 - 解析图片中的 QR Code 资料

前言

前篇讲解如何产二维条码 QR Code,这篇则是示范如何解析(解码) QR Code,类似工具有 ZBarZXing..等,本篇以 ZBar 做示范

说明

情境说明,打 API 取回的图片、PDF 中,有包含 QR Code,需要解析 QR Code 的讯息内容 (这边不示范如何截图指定位置,可用 RMagick 处理)

实作

需要安装 zbar,也可以用 zbar Gem,这边以 Homebrew 安装为例

# for macOS
brew install zbar

先产一个 QR Code 的图片档,接着再用 zbar 来解析(编码)

# 产一个 qr_code.png
qrcode = RQRCode::QRCode.new("https://riverye.com/")
png = qrcode.as_png(size: 300, border_modules: 2, module_px_size: 2)
qrcode_path = Rails.root.join("qrcode.png")
IO.binwrite(qrcode_path, png.to_s)

# ---

# 解码 qrcode.png
qrcode_path = Rails.root.join("qrcode.png")
decoded_qrcode = `zbarimg #{qrcode_path}`                    # "QR-Code:https://riverye.com/\n"
result = decoded_qrcode.gsub("QR-Code:", "").gsub("/\n", "") # "https://riverye.com"

范例 QR Code

操作范例

小结

最初是使用 zxing_cpp Gem 处理,也能解决问题,但总下载次数与热门 Gem 动辄数百万、数千万次数相比,算是比较冷门的 Gem。

ZBar 与 ZXing 都能找到类似的 Gem 使用,有需要时,可以看哪个用比较上手~

参考资料

  1. ZBar GitHub
  2. ZXing GitHub

铁人赛文章连结:https://ithelp.ithome.com.tw/articles/10264602
medium 文章连结:https://link.medium.com/MDSrOdpGOjb
本文同步发布於 小菜的 Blog https://riverye.com/

备注:之後文章修改更新,以个人部落格为主


<<:  sed - 2 Pattern

>>:  [从0到1] C#小乳牛 练成基础程序逻辑 Day 10 - 转角捡到猫 取什麽名字好? 命名规范

Day 7 [Python ML] Machine Learning的处理流程

Step 1: 蒐集数据 要先将自己需要的数据下载好,并且确认资料格式而去做不同的处理 Step ...

Rails幼幼班--Rails安装Tailwindcss

用gem跟CDN不好吗... 这麽简单的事情也要分享?? 因为,没常安装就忘东忘西了... 认命做...

Day2 - P5基本操作 - 基本设定跟操作

其实为什麽P5这麽多人喜爱 阅读性真的很高,举例来讲好了 一个基本的设定 首先你先设定 setup ...

前端工程学习日记第14天

重点: Z-index 数字越大 越在上方,如同photoshop的图层概念 建议1-30层就好了 ...

Day1:白兔

茕茕白兔,东走西顾。衣不如新,人不如故。心理学研究#怀旧,会让人变得积极乐观,本来想读VB重温16岁...