1. ean13标准条形码
from pystrich.ean13 import EAN13Encoder encode = EAN13Encoder('123123123123') encode.save('d:/barcode.png')
条形码最常用的ean13,前三位是国家代码,接着4位是企业代码,接着5位是企业自定义,最后一位是校验码(自动生成)
参数是一个12位的值,会生成13位的条形码 校验码的计算方法是 10 -(偶数位之和*3 + 奇数位之和) % 10 123123123123X 10 - (2+1+3+2+1+3)*3 +(1+3+2+1+3+2) % 10 -->2
1231231231232
2.简单二维码
1 import qrcode 2 3 # 制作二维码实例,可以添加文字,数字,URL 4 qrc = qrcode.make(r'https://www.baidu.com') 5 # 保存二维码 6 qrc.save('d:/qr.png')
3.二维码中加入图片
# 导入图像处理库PIL的image方法 from PIL import Image # qrcode是第三方库,需要pip install qrcode安装 import qrcode # 初步生成二维码图像 qr = qrcode.QRCode(version=None,error_correction=qrcode.constants.ERROR_CORRECT_H,box_size=8,border=4) # 添加二维码信息,可以是文字、数字、url qr.add_data("http://www.besttang.com") # 生成二维码实例 qr.make(fit=True) # 把实例转换成图片 img = qr.make_image() # 把颜色模式转换为RGBA img = img.convert("RGBA") # 打开logo文件,二维码中心logo图片 icon = Image.open("D:/favicon.jpg") # 先得出二维码的宽和高 img_w,img_h = img.size factor = 4 # 通过二维码宽高计算出logo图片宽和高的最大限度 size_w = int(img_w / factor) size_h = int(img_h / factor) # 获取logo的宽和高 icon_w,icon_h = icon.size #比较logo宽高和最大限度宽高,如果超过最大限度就将logo尺寸调整到最大限度 if icon_w >size_w: icon_w = size_w if icon_h > size_h: icon_h = size_h # 重新调整logo的尺寸 Image.NEAREST :低质量 Image.BILINEAR:双线性 # Image.BICUBIC :三次样条插值 Image.ANTIALIAS:高质量 icon = icon.resize((icon_w,icon_h),Image.ANTIALIAS) # 根据logo和图片的长宽确定logo的位置 w = int((img_w - icon_w)/2) h = int((img_h - icon_h)/2) # 将logo颜色模式转换为RGBA icon = icon.convert("RGBA") # 将logo图片粘贴到二维码的指定位置 img.paste(icon,(w,h)) # 保存二维码到指定位置,设置二维码格式 img.save('D:/createlogo.png')

参数含义:
version:值为1~40的整数,控制二维码的大小(最小值是1,是个12×12的矩阵)。 如果想让程序自动确定,将值设置为 None 并使用 fit 参数即可。
error_correction:控制二维码的错误纠正功能。可取值下列4个常量。
ERROR_CORRECT_L:大约7%或更少的错误能被纠正。
ERROR_CORRECT_M(默认):大约15%或更少的错误能被纠正。
ROR_CORRECT_H:大约30%或更少的错误能被纠正。
box_size:控制二维码中每个小格子包含的像素数。
border:控制边框(二维码与图片边界的距离)包含的格子数(默认为4,是相关标准规定的最小值)