Python3 集成条形码和二维码解析

java哥 阅读:242 2021-03-31 12:46:25 评论:0

Python3 集成条形码

安装:

pip install python-barcode

python-barcode 支持条形码格式:

'code39',  
'ean',  
'ean13', 
'ean8', 
'gs1',  
'gtin',  
'isbn',  
'isbn10',  
'isbn13',  
'issn',  
'jan',  
'pzn',  
'upc',  
'upca'

功能演示:使用python-barcode 创建ean13标准的条形码,并将条形码另存为SVG格式文件

import barcode 
 
# 设置条形码标准 
ean = barcode.get('ean13', '123456789102') 
print(ean.get_fullcode()) 
filename = ean.save('ean13') 
print(filename) 
options = dict(compress=True) 
filename = ean.save('ean13', options) 
print(filename)

功能演示:使用python-barcode 创建ean13标准的条形码,并将条形码另存为png 图片

import barcode 
from barcode.writer import ImageWriter 
 
# 设置条形码标准 
ean = barcode.get('ean13', '123456789102', writer=ImageWriter()) 
filename = ean.save('D:\\ean13') 
print(filename)

python-barcode 主要条形码类

1、barcode.codex.Code39(code, write=None, add_checksum=True):生成一个Code39标准的条形码

      参数code: 条形码内容

      参数write:条形码格式,默认为SVGWriter,即SVG格式

      参数add_checksum:是否添加校验,默认值为true

2、barcode.codex.PZN(pzn,write=None): 生成一个PZN标准的条形码

3、barcode.ean.EuropeanArticleNumber13(ean, write=None):生成一个EAN-13标准的条形码

4、barcode.ean.EuropeanArticleNumber8(ean, write=None):生成一个EAN-8标准的条形码

5、barcode.ean.JapanArticleNumber(jar, write=None):生成一个JAN标准的条形码

6、barcode.isxn.InternationalStandarBookNumber13(isbn, write=None):生成一个ISBN-13标准的条形码

7、barcode.isxn.InternationalStandarBookNumber10(isbn, write=None):生成一个ISBN-10标准的条形码

8、barcode.isxn.InternationalStandarSerialNumber10(issn, write=None):生成一个ISSN标准的条形码

9、barcode.upc.UniversalProductCodeA(upc, write=None, make_ean=False):生成一个UPC-A标准的条形码

 

Python3 集成二维码

安装:

pip install qrcode

注意:在安装qrcode 库之前需要确保已经安装Pillow 库

功能演示:简单用法

import qrcode 
img = qrcode.make("simpleqrcode") 
img.save("D:\\simpleqrcode.jpg") 
img.show() 

功能演示:高级用法

import qrcode 
qr = qrcode.QRCode(version=2, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=10,) 
qr.add_data('http://www.baidu.com/') 
qr.make(fit=True) 
img = qr.make_image() 
img.show() 
img.save('D:\\3.jpg') 

功能演示:带logo图案的二维码

from PIL import Image 
import qrcode 
  
qr = qrcode.QRCode(version=5,error_correction=qrcode.constants.ERROR_CORRECT_H,box_size=8,border=4) 
qr.add_data("http://www.baidu.com/") 
qr.make(fit=True) 
  
img = qr.make_image() 
img = img.convert("RGBA") 
  
icon = Image.open("paste.jpg") 
  
img_w,img_h = img.size 
factor = 4 
size_w = int(img_w / factor) 
size_h = int(img_h / factor) 
  
icon_w,icon_h = icon.size 
if icon_w >size_w: 
    icon_w = size_w 
if icon_h > size_h: 
    icon_h = size_h 
icon = icon.resize((icon_w,icon_h),Image.ANTIALIAS) 
  
w = int((img_w - icon_w)/2) 
h = int((img_h - icon_h)/2) 
icon = icon.convert("RGBA") 
icon.show() 
img.paste(icon,(w,h),icon) 
img.show() 
img.save('createlogo.jpg')

qrcode.QRCode 类详解

QRCode  包含以下四个属性参数

version:值为1~40的整数,控制二维码的大小(最小值是1,是个12×12的矩阵)。 如果想让程序自动确定,将值设置为 None 并使用 fit 参数即可。

error_correction:控制二维码的错误纠正功能。可取值下列4个常量。
     ERROR_CORRECT_L:大约7%或更少的错误能被纠正。
     ERROR_CORRECT_M(默认):大约15%或更少的错误能被纠正。

     ERROR_CORRECT_Q:大约25%或更少的错误能被纠正。
     ROR_CORRECT_H:大约30%或更少的错误能被纠正。
box_size:控制二维码中每个小格子包含的像素数。
border:控制边框(二维码与图片边界的距离)包含的格子数(默认为4,是相关标准规定的最小值)。

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜
KIKK导航

KIKK导航

关注我们