我使用“ segno”通过python创建Micro QR代码:
import segno
segno.make_micro("1").save("1.png", scale=10)
Run Code Online (Sandbox Code Playgroud)
有谁知道用python解码的(简单)方法吗?我找不到图书馆,但我担心自己(也许使用openCV)这样做会很费力。
与本文相反(如何在(最好是纯净的)Python中解码QR码图像?),我已经成功安装了PyQRCode和ZBar。不幸的是,这些库无法解码Micro QR码。
由于显然使用Micro QR码还没有变得足够广泛(还?),值得在我能找到的任何库中添加对读取它们的支持,因此我正在寻找一种解决方法。在我的搜索中,我遇到了一两个支持解码微型 QR 码的在线 QR 阅读器。由于我刚刚学习Playwright for Python,我想,我应该尝试一下。
下面的代码用于playwright打开在线二维码解码器网站,单击页面以设置正确的选项,上传图像文件,然后从页面读取结果。
我知道这是一种完全复杂的方式,没有人会在生产代码中这样做,但它很有趣并且确实有效:)虽然它不符合OP要求的“简单”,但我担心。
from playwright import sync_playwright
import segno
segno.make_micro("1").save("1.png", scale=10)
with sync_playwright() as p:
browser = p.firefox.launch(headless=False)
page = browser.newPage()
page.goto('https://www.datasymbol.com/barcode-reader-sdk/barcode-reader-sdk-for-windows/online-barcode-decoder.html')
page.querySelector('select[name=\"sr\"]').selectOption([{'label': 'Text'}])
page.querySelector('img[alt=\"QRCode Decoder Scanner Settings\"]').click()
page.querySelector('input[name=\"qrmicro\"]').click()
page.querySelector('input[id=\"fupload1\"]').setInputFiles('1.png')
page.querySelector('input[type=\"button\"]').click()
iframe = page.querySelector('iframe[name=\"f2\"]').contentFrame()
result = iframe.querySelector('css=pre').innerHTML().rstrip()
print(result)
browser.close()
Run Code Online (Sandbox Code Playgroud)
印刷
1
Run Code Online (Sandbox Code Playgroud)
一些注意事项:
headless=False.**,因此如果您编码,One Two Three您将检索到**e Two Three。如果您不自己创建条形码,则这是一个限制。如果您这样做,只需**首先在内容的开头添加即可。requests. 我上面选择的网站显然也提供类似的东西,而且似乎有一个免费计划。但我从未使用过它,所以我不能说什么。