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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM