PHP、Python、JavaScript 識別二維碼和生成二維碼解決方案

Flex發表於2019-01-25

PHP、Python、Javascript 識別二維碼和生成二維碼解決方案

生成二維碼

安裝 endroid/qr-code

composer require endroid/qr-code

使用Demo 更多請檢視 文件

use Endroid\QrCode\QrCode;

$qrCode = new QrCode('Life is too short to be generating QR codes');

header('Content-Type: '.$qrCode->getContentType());
echo $qrCode->writeString();
exit(); //需加上這行 不然會亂碼

識別二維碼

安裝 khanamiryan/php-qrcode-detector-decoder 包,此包是基於谷歌開源的zxing實現的。

composer require khanamiryan/qrcode-detector-decoder

使用Demo 更多請檢視 文件

use Zxing\QrReader;

$qrcode = new QrReader('path/to_image');
$text = $qrcode->text(); //return decoded text from QR Code

生成二維碼

安裝 qrcode

pip install qrcode

使用Demo

import qrcode

# 二維碼內容
data = "https://www.baidu.com"
# 生成二維碼
img = qrcode.make(data=data)
# 直接顯示二維碼
img.show()
# 儲存二維碼為檔案
# img.save("baidu.jpg")

識別二維碼

安裝 zxing 包(此包依賴JDK環境,需要先安裝JDK環境)

pip install zxing

使用Demo

import zxing

reader = zxing.BarCodeReader()
barcode = reader.decode("baidu.jpg")
print(barcode.parsed)

更多請參考 Python3+qrcode+zxing生成和識別二維碼教程

生成二維碼

在網頁中引入jquery.qrcode.js

<script src="https://cdn.bootcss.com/jquery.qrcode/1.0/jquery.qrcode.min.js"></script>

建立一個div標籤用來顯示二維碼

<div id="qrcode"></div>

使用Demo

jquery('#qrcode').qrcode("this plugin is great");
jquery('#qrcode').qrcode({width: 64,height: 64,text: "size doesn't matter"}); //自定義二維碼大小

識別二維碼

js識別、生成二維碼線上 DEMO
生成是用的jquery.qrcode.js實現的,識別是我從 WebQR 這個網站扒下來的。下載原始碼
已知問題:Windows版的Chrome和安卓手機測試是沒問題的,但Mac和ios上js報錯。無法識別二維碼!

需求是實現使用者上傳支付寶、微信收款碼。程式識別二維碼內容然後重新生成二維碼。(⊙o⊙)…因為收款碼上有多餘的內容~~~
百毒找了一圈php識別二維碼,就只有裝擴充套件而且作者還棄坑了。遂放棄...
後面找到一個js方案。從webqr上扒下人家的js。嗯 實現了。上線執行 ... 發現蘋果裝置不相容。
後改成調別人API識別。發現識別也不是很理想。
後面查詢python識別方案。找到了zxing包。發現居然依賴JDK...
最後發現zxing是谷歌開源的識別方案,嗯 有人移植到了php...
猝...珍愛生命,遠離百毒。信谷歌保平安。

沒有啥是一行程式碼解決不了的,如果有那就兩行。

相關文章