1、QRCode
- QRCode最簡單的使用
import qrcode
qrcode.make("第一個二維碼").get_image().show()
根據文本生成二維碼並且直接顯示。
- 根據文本或URL生成二維碼,保存到指定目錄並顯示二維碼
import qrcode
import os
text = input("請輸入文本或者URL:")
imgname = input("請輸入生成二維碼的名稱:")
img = qrcode.make(text)
img.save(os.getcwd() + "/images/" + imgname + ".png")
img.show()
- 生成帶logo的二維碼
from PIL import Image
import qrcode, os
def create_qrcode(url, qrcodename):
qr = qrcode.QRCode(
version=1, # 設置容錯率為最高
error_correction=qrcode.ERROR_CORRECT_H, # 用於控制二維碼的錯誤糾正程度
box_size=8, # 控制二維碼中每個格子的像素數,默認為10
border=1, # 二維碼四周留白,包含的格子數,默認為4
)
qr.add_data(url) # QRCode.add_data(data)函數添加數據
qr.make(fit=True) # QRCode.make(fit=True)函數生成圖片
img = qr.make_image()
img = img.convert("RGBA") # 二維碼設為彩色
logo = Image.open("images/logo.jpg") # 傳gif生成的二維碼也是沒有動態效果的
w,h = img.size
logo_w,logo_h = logo.size
l_w = int((w - logo_w) / 2)
l_h = int((h - logo_h) / 2)
logo = logo.convert("RGBA")
img.paste(logo, (l_w, l_h), logo)
img.show()
img.save(os.getcwd() + "/images/" + qrcodename + ".png", quality=100)
def main():
url = input("請輸入文本或URL:")
qrcodename = input("請輸入生成二維碼的名稱:")
create_qrcode(url,qrcodename)
if __name__ == '__main__':
main()
注意:logo圖不要太大,不然生成之后logo可能會擋住二維碼的內容,導致掃不出來。
2、MyQR
- 通過myqr生成動態二維碼
from MyQR import myqr
import os
text = input("請輸入文本或url:")
save_name = input("請輸入生成二維碼的名稱:")+".png"
myqr.run(
words=text, #在命令后輸入鏈接或者句子作為參數,然后在程序的當前目錄中產生相應的二維碼圖片文件,默認命名為” qrcode.png“
version=1, #設置容錯率為最高默認邊長是取決於你輸入的信息的長度和使用的糾錯等級;而默認糾錯等級是最高級的H
level='H', #控制糾錯水平,范圍是L、M、Q、H,從左到右依次升高
picture="images/logo.jpg", #用來將QR二維碼圖像與一張同目錄下的圖片相結合,產生一張黑白圖片
colorized=True, #可以使產生的圖片由黑白(False)變為彩色(True)的
contrast=1.0, #用以調節圖片的對比度,1.0 表示原始圖片,更小的值表示更低對比度,更大反之。默認為1.0。
brightness=1.0, #用來調節圖片的亮度,其余用法和取值與 -con 相同
save_name=save_name, #控制文件名,格式可以是 .jpg, .png ,.bmp ,.gif ;
save_dir=os.getcwd() + "/images/"
)
MyQR參數說明
Positional parameter
words: str
Optional parameters
version: int, from 1 to 40
level: str, just one of ('L','M','Q','H')
picutre: str, a filename of a image
colorized: bool
constrast: float
brightness: float
默認輸出文件名是“ qrcode.png ",而默認存儲位置是當前目錄
save_name: str, the output filename like 'example.png'
save_dir: str, the output directory
