Python3.7调用pyzbar0.1.8解析base64形式的二维码图片(全内存操作,推荐使用)

  1. 场景:前端调摄像头,不断抓拍二维码图片,并将图片以base64的形式通过接口传递到后台,后台通过一翻解析转换操作,最终提取到二维码包含的内容。
  2. 安装依赖库
pip install Pillow
pip install pyzbar
  1. 编写python脚本final_code.py
import base64
import pyzbar.pyzbar as pyzbar
from PIL import Image,ImageEnhance
from io import BytesIO

base64Str = "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"

# 1.解码Base64字符串
img_data = base64.b64decode(base64Str)

# 2.将节码结果转为字节流
byte_stream = BytesIO(img_data)

# 3.打开字节流得到图片对象
img = Image.open(byte_stream)

img = ImageEnhance.Brightness(img).enhance(2.0)  #增加亮度
img = ImageEnhance.Contrast(img).enhance(4.0)  #增加对比度
# img = ImageEnhance.Sharpness(img).enhance(17.0)  #锐利化
# img = img.convert('L')  #灰度化

# img.show()  # 播放图片,供测试用

# 4.调用pyzbar解析图片中的二维码
barcodes = pyzbar.decode(img)

# 5.打印解析结果
print(barcodes[0].data.decode("utf-8"))
  1. 执行脚本
python final_code.py

执行脚本得到的结果是:hello world字符串

原文地址:https://www.cnblogs.com/JaxYoun/p/13457556.html