Python3 集成条形码和二维码

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,是相关标准规定的最小值)。

猜你喜欢

转载自blog.csdn.net/zhouzhiwengang/article/details/112797967