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,是相關標准規定的最小值)
