zcabcd 2020-04-18
https://amazefcc233.com/archives/148/
在本教程所给出的内容中,您需要安装以下工具:
sudo apt-get install python-imagingsudo apt-get install qrencodesudo apt-get install python-pygamesudo apt-get install zbar-toolsmain.py
#!/usr/bin/env python
#-*- coding: UTF-8 -*-
‘‘‘
主程序
‘‘‘
import qrcode
while (True):
print ("1: qrcode 创建")
print ("2: qrcode 识别")
print (u"3: 退出")
select=int(input(u"请选择: "))
if select == 1:
qrcode.erzeugen()
elif select == 2:
result=qrcode.lesen().strip()
print (result)
elif select == 3:
print (u"完成程序...")
breakqrcode.py
#!/usr/bin/env python
#-*- coding: UTF-8 -*-
import os, signal, subprocess
from picamera import PiCamera
strfile1 = "qrcode"
def erzeugen():
text=input(u"enter text QRCode: ")
os.system("qrencode -o "+strfile1+".png ‘"+text+"‘")
print (u"QRCode in: "+strfile1+".png")
def lesen():
os.system("raspistill -t 1000 -w 320 -h 240 -o /home/pi/Desktop/cam/qrcode/image.jpg")
print (u"raspistill finished")
#zbarcam=subprocess.Popen("zbarcam --raw --nodisplay /dev/video0", stdout=subprocess.PIPE, shell=True, preexec_fn=os.setsid)
#print u"zbarcam started successfully..."
#qrcodetext=zbarcam.stdout.readline()
zbarcam=subprocess.Popen("zbarimg --raw /home/pi/Desktop/cam/qrcode/image.jpg", stdout=subprocess.PIPE, shell=True, preexec_fn=os.setsid)
qrcodetext=zbarcam.stdout.readline().decode()
if qrcodetext != "":
#print (qrcodetext)
pass
else:
print (u"qrcodetext 为空")
#os.killpg(zbarcam.pid, signal.SIGTERM)
print (u"zbarcam stopped successfully...")
qrresult = f"QRCode: {qrcodetext}"
return (qrresult)只要上面所有的准备工作都全部成功地做完了,那么您运行代码即可。按理来说应该并没有什么问题会出现。
请在阅读以下内容之前,再想一想:我是否真的需要支持中文呢?
......
......
......
如果答案仍然为是,那么请继续阅读。否则请使用方便快捷的不需要支持中文的方式。
因为此部分内容会涉及到一些编译安装的相关内容。
首先,请运行以下命令,安装工具库
wget http://www.imagemagick.org/download/delegates/jpegsrc.v9b.tar.gz tar -xzvf jpegsrc.v9b.tar.gz cd jpeg.9b ./configure make sudo make install
然后,就要安装Imagemagick了。
wget https://www.imagemagick.org/download/ImageMagick.tar.gz # 文件夹名称可能有所不同。还请自行灵活处理。 cd ImageMagick-7.0.8-68 ./configure make sudo make install sudo ldconfig /usr/local/lib # 检验安装是否成功 convert -version
并且,我们还需要配置一波软链接:
sudo ln -s /usr/local/include/ImageMagick-7 /usr/local/include/ImageMagick sudo ln -s /usr/local/include/ImageMagick-7/MagickWand /usr/local/include/wand
首先,下载一份zbar源码,并准备编译器:
sudo apt-get install python-gtk2-dev sudo apt-get install libqt4-dev wget http://downloads.sourceforge.net/project/zbar/zbar/0.10/zbar-0.10.tar.gz tar -zxvf zbar-0.10.tar.gz
然后,我们需要编辑一下编码,使得可以支持中文。
# 进入目录 cd zbar.0.10/zbar/qrcode/ vim qrdectxt.c
找到如图片所示的代码(约第64行),将红框内圈出部分的编码进行替换
(替换的内容为日文的编码。如果希望识别日文,那请替换其他编码,但不要替换utf-8)

同文件找到如图片所示的代码,将编码顺序进行排列
(建议中文放在最前面)
保存,并退出。
然后,就可以开始编译工作啦!
# 首先回到自己的目录(目录仅为示例,对于不同人可能会有不同) cd /home/pi/Desktop/build/zbar-0.10 # 以下代码安装后将**不可以**使用zbarcam命令。若想使用zbarcam,请去除--disable-video命令,并自行安装相关库 ./configure --disable-video -without-qt -without-gtk -without-x -with-jpeg make sudo make install
