最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python實現(xiàn)將網(wǎng)址生成二維碼

 更新時間:2026年06月01日 08:52:14   作者:py小王子  
qrcode?是指二維碼(Quick Response Code)的一種編碼方式,它是一種特定的條碼格式,可以存儲比傳統(tǒng)條碼更多的信息,下面我們就來看看如何使用Python實現(xiàn)將網(wǎng)址生成二維碼吧

前言

qrcode 是指二維碼(Quick Response Code)的一種編碼方式,它是一種特定的條碼格式,可以存儲比傳統(tǒng)條碼更多的信息,如網(wǎng)址、聯(lián)系信息、地理位置等。qrcode 廣泛應用于各種場景,如商品包裝、廣告、支付、票務等,因為它允許用戶通過智能手機等設備快速掃描并訪問相關信息。

在Python中,qrcode 通常指的是使用 qrcode 庫(也稱為 qrcode[pil] 或 qrcode-python)來生成二維碼圖像。這個庫提供了創(chuàng)建和操作二維碼的API,允許開發(fā)者輕松地將數(shù)據(jù)編碼為二維碼圖像,并將其保存到文件或直接在屏幕上顯示。

pip install qrcode Pillow

或者

完整代碼 

# 地址生成二維碼
import qrcode
import os

# 創(chuàng)建QRCode對象
qr = qrcode.QRCode(
    # 控制二維碼的大小,1是最小的矩陣13x13,數(shù)值越大尺寸越大,可存儲的信息也越多
    version=1,
    # 控制二維碼的錯誤糾錯能力
    # ERROR_CORRECT_L 大約7%或更少的錯誤會被更正
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    # 控制每一個點(box)的像素數(shù)
    box_size=10,
    # 控制邊框(最小值為4)
    border=4,
)

# 添加數(shù)據(jù)到QRCode對象
# qr.add_data() 方法在 qrcode 庫中用于向 QR 碼對象添加數(shù)據(jù)。
# 這些數(shù)據(jù)并不一定是網(wǎng)站的 URL,它們可以是任何形式的有效字符串,
# 只要這些數(shù)據(jù)能夠被 QR 碼編碼并且解碼后能夠被目標設備或應用程序正確識別和處理。
# https://www.baidu.com
data = input("請輸入您的網(wǎng)址:")

# 注意:如果輸入的內(nèi)容包含特殊字符或非常長的字符串,
# 可能需要在生成二維碼前進行驗證或預處理,以確保其能夠被正確編碼和解碼。
qr.add_data(f"{data}")
qr.make(fit=True)  # 參數(shù)fit=True用于在可能的情況下調(diào)整二維碼大小以適應數(shù)據(jù)

# 生成圖像
# 可以將生成的二維碼保存為文件,例如PNG格式
img = qr.make_image(fill='black', back_color='white')

# 保存二維碼圖像并顯示
img_name = input("請輸入您的二維碼照片名字(或輸入帶后綴的名字如mycode.png):")
if not img_name.lower().endswith('.png'):
    # 檢查后綴,但注意qrcode默認生成PNG
    # 如果用戶沒有輸入.png,則添加.png(因為qrcode生成的是PNG)
    img_name = img_name + ".png"
# 允許用戶輸入保存目錄和文件名
save_dir = input("請輸入您想要保存二維碼的目錄(例如:C:/Users/YourName/Pictures/):")
# 確保目錄末尾有斜杠(如果不是根目錄的話)
# 使用os.sep來獲取當前操作系統(tǒng)的路徑分隔符,以確保路徑在不同操作系統(tǒng)上都是正確的
# 首先檢查 save_dir 是否不以 os.sep 結(jié)尾,并且確保它不是一個空字符串。
# 如果這兩個條件都滿足,那么它就在 save_dir 的末尾添加一個路徑分隔符。
if not save_dir.endswith(os.sep) and save_dir != "":
    save_dir += os.sep

# 檢查目錄是否存在,不存在則創(chuàng)建(exist_ok=True參數(shù)允許目錄已經(jīng)存在而不引發(fā)錯誤)
os.makedirs(save_dir, exist_ok=True)

# 構(gòu)建完整的文件路徑
full_path = os.path.join(save_dir, img_name)


# 顯示保存的位置
print(f"二維碼生成地址為: {full_path}")

# 保存二維碼圖像(一般為你寫的文件夾目錄下)
img.save(full_path)

print(f"二維碼已生成并保存為: {img_name}")
# 嘗試顯示圖像
# 添加異常處理來捕獲img.show()可能引發(fā)的錯誤,并在無法顯示圖像時打印一條消息。
try:
    img.show()
except Exception as e:
    print(f"無法顯示圖像:{e}")

效果如下:

知識擴展

你可以使用 Python 的 qrcode 庫輕松地將網(wǎng)址生成二維碼。以下是一個完整指南,包括安裝、基本用法以及高級定制(如調(diào)整大小、顏色等)。

1. 安裝 qrcode 庫

在終端中運行:

pip install qrcode[pil]

安裝 qrcode[pil] 會同時安裝 Pillow 庫,用于生成圖片文件。

2. 基礎示例:生成二維碼并保存為圖片

import qrcode
# 要編碼的網(wǎng)址
url = "https://www.example.com"
# 創(chuàng)建 QRCode 對象
qr = qrcode.QRCode(
    version=1,  # 控制二維碼的尺寸(1-40),1 是最小尺寸
    error_correction=qrcode.constants.ERROR_CORRECT_L,  # 糾錯等級
    box_size=10,  # 每個小格子的大?。ㄏ袼兀?
    border=4,     # 邊框?qū)挾龋ǜ褡訑?shù))
)
# 添加數(shù)據(jù)
qr.add_data(url)
qr.make(fit=True)
# 生成圖像
img = qr.make_image(fill_color="black", back_color="white")
# 保存圖片
img.save("qrcode_example.png")

運行后會在當前目錄生成一張名為 qrcode_example.png 的二維碼圖片,掃描即可訪問該網(wǎng)址。

3. 參數(shù)詳解

參數(shù)說明
version整數(shù) 1~40,控制二維碼的網(wǎng)格數(shù)量。1 為 21x21,每增加 1 版本,邊長增加 4 格。設為 None 或 fit=True 可自動調(diào)整。
error_correction糾錯等級:
ERROR_CORRECT_L:約 7% 的字碼可被修正
ERROR_CORRECT_M(默認):約 15%
ERROR_CORRECT_Q:約 25%
ERROR_CORRECT_H:約 30%
box_size每個小格子的像素大小,例如 10 表示每個格子 10×10 像素。
border二維碼四周留白的格子數(shù),默認 4(至少需要 4 格以確保掃描識別)。
fill_color前景色(即二維碼顏色),默認黑色。
back_color背景色,默認白色。

4. 高級用法

生成二維碼并直接顯示(Jupyter Notebook 或 GUI)

import qrcode
from PIL import Image
qr = qrcode.QRCode(box_size=5, border=2)
qr.add_data("https://www.google.com")
qr.make(fit=True)
img = qr.make_image(fill_color="blue", back_color="yellow")
# 在 Jupyter 中顯示
from IPython.display import display
display(img)
# 或者直接調(diào)用 show() 打開系統(tǒng)圖片查看器(需要 Pillow)
img.show()

生成二維碼并轉(zhuǎn)為字節(jié)流(不保存文件,直接用于 Web 響應)

import qrcode
from io import BytesIO
qr = qrcode.QRCode()
qr.add_data("https://www.github.com")
qr.make(fit=True)
img = qr.make_image()
# 保存到內(nèi)存中的字節(jié)流
img_byte_arr = BytesIO()
img.save(img_byte_arr, format='PNG')
img_byte_arr = img_byte_arr.getvalue()
# 此時 img_byte_arr 可直接作為 HTTP 響應返回,或?qū)懭胛募炔僮?/pre>

自定義二維碼顏色和形狀(使用 Pillow 進一步處理)

import qrcode
from PIL import Image, ImageDraw
# 生成普通二維碼
qr = qrcode.QRCode(box_size=8, border=2)
qr.add_data("https://www.python.org")
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white").convert('RGB')
# 將二維碼顏色改為漸變色(這里簡單示例:將黑色區(qū)域變?yōu)榧t色)
pixels = img.load()
for i in range(img.size[0]):
    for j in range(img.size[1]):
        if pixels[i, j] == (0, 0, 0):  # 黑色部分
            pixels[i, j] = (255, 0, 0)  # 改為紅色
img.save("red_qrcode.png")

5. 注意事項

  • 網(wǎng)址長度:二維碼的容量是有限的。較長的網(wǎng)址可以適當提高 version 或使用網(wǎng)址縮短服務。
  • 糾錯等級:如果要在二維碼中心添加 Logo,建議使用 ERROR_CORRECT_H 以保證可讀性。
  • 掃描測試:生成后務必用手機掃描驗證,確保正確解析。

6. 完整示例:帶 Logo 的二維碼

import qrcode
from PIL import Image
# 創(chuàng)建二維碼
qr = qrcode.QRCode(
    version=5,
    error_correction=qrcode.constants.ERROR_CORRECT_H,
    box_size=10,
    border=4,
)
qr.add_data("https://www.example.com")
qr.make(fit=True)
# 生成圖像
img = qr.make_image(fill_color="black", back_color="white").convert('RGB')
# 打開 Logo 圖片并調(diào)整大小
logo = Image.open("logo.png")
logo_size = 80
logo = logo.resize((logo_size, logo_size))
# 計算粘貼位置(中心)
pos = ((img.size[0] - logo_size) // 2, (img.size[1] - logo_size) // 2)
img.paste(logo, pos)
img.save("qrcode_with_logo.png")

到此這篇關于使用Python實現(xiàn)將網(wǎng)址生成二維碼的文章就介紹到這了,更多相關Python生成二維碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

柏乡县| 溧阳市| 靖远县| 德令哈市| SHOW| 诸城市| 陈巴尔虎旗| 阜平县| 静安区| 介休市| 肇庆市| 吉木萨尔县| 文水县| 建宁县| 武功县| 额尔古纳市| 兴安县| 长垣县| 唐山市| 禄劝| 宁南县| 呼和浩特市| 育儿| 修武县| 驻马店市| 根河市| 宽甸| 莱西市| 十堰市| 海原县| 大邑县| 石狮市| 咸阳市| 镇雄县| 巴南区| 正阳县| 大冶市| 疏勒县| 商洛市| 冀州市| 凉城县|