【Pythonプロジェクト実践】アイコン付きQRコードの生成
8187 ワード
QRコード(QRバーコード)とは、1次元バーコードに基づいて拡張された別の1次元の可読性を有するバーコードであり、白黒マトリクスパターンを用いてバイナリデータ**を表し、デバイススキャン後に含まれる情報を取得することができる.1次元バーコードの幅にはデータが記載されているが、その長さにはデータが記載されていない.QRコードの長さと幅にはデータが記載されています.2 Dバーコードには、1 Dバーコードにはない「位置決めポイント」と「フォールトトレランスメカニズム」があります.フォールトトレランス機構のように、すべてのバーコードまたはバーコードが無損であることが認識されなくても、バーコード上の情報を正確に復元することができる.QRコードの種類はいろいろありますが、機構によって開発されたQRコードは異なる構造と作成、読み取り方法を持っています.
QRコードに対するPythonの処理を以下の例で理解します.
以上のコードから,QRコード生成とその基本的な運用を大まかに理解できるが,より創造的なコードを作るには練習を続ける必要がある.
QRコードに対するPythonの処理を以下の例で理解します.
import qrcode
from PIL import Image
import os,sys
def gen_qrcode(string, path ,logo=""):
"""
@ logo
@ qrcode、PIL
@ string:
@ path:
@ logo:logo
@return:None
"""
#
qr = qrcode.QRCode(
version=2,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=8,
border=1
)
qr.add_data(string)
qr.make(fit=True)
# Image RGBA
img=qr.make_image()
img=img.convert("RGBA")
if logo and os.path.exists(logo):
try:
icon=Image,open(logo) # logo
img_w,img_h =img.size
except Exception as e:
print(e)
sys.exit(1)
factor=4
# logo
size_w=int(img_w/factor)
size_h=int(img_h/factor)
# logo
icon_w,icon_h=icon.size
if icon_w>size_w:
icon_w=size_w
if icon_h>size_h:
icon_h=size_h
icon=icon.resize((icon_w,icon_h), Image.ANTIALIAS)
# logo ,
w=int((img_w-icon_w)/2)
h=int((img_h-icon_h)/2)
icon=icon.convert("RGBA")
img.paste(icon,(w, h),icon)
#
img.save(path) # qrcode.png
if __name__="__main__":
info=" http://www.ybu.edu.cn "
pic_path="qrcode.png" #
logo_path="logo.png" #
gen_qrcode(info, pic_path,logo_path)
以上のコードから,QRコード生成とその基本的な運用を大まかに理解できるが,より創造的なコードを作るには練習を続ける必要がある.