python笔记 利用python 自动生成条形码 二维码

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

猜你喜欢

转载自www.cnblogs.com/liqinsan/p/11490955.html