ジャンゴのPythonスクリプトツールボックスの生成ロゴ付きQRコード
2089 ワード
最近QRコードにロゴを付ける必要があり、ネット上で使いやすいものが見つからなかったので、自分でpythonで書きました.Qrcode、PILライブラリをインストールする必要があります
QRコードはQRコード(Quick Response Code)と略称され、学名は高速応答マトリクスコードであり、QRバーコードの一種であり、日本のDenso Wave社が1994年に発明した.現在、スマートフォンの普及に伴い、商品情報の検索、社交的な友人の相互作用、ネットアドレスのアクセスなど、日常生活に広く応用されている.
PythonのQRコードライブラリをインストール--qrcode
pip install qrcode
Qrcodeピクチャを生成するにはPythonに依存するライブラリが必要なので、まずPythonライブラリPIL(Python Imaging Library)をインストールする必要があります.そうしないと、「ImportError:No module named Image」というエラーが発生します.
コードは次のとおりです.
QRコードはQRコード(Quick Response Code)と略称され、学名は高速応答マトリクスコードであり、QRバーコードの一種であり、日本のDenso Wave社が1994年に発明した.現在、スマートフォンの普及に伴い、商品情報の検索、社交的な友人の相互作用、ネットアドレスのアクセスなど、日常生活に広く応用されている.
PythonのQRコードライブラリをインストール--qrcode
pip install qrcode
Qrcodeピクチャを生成するにはPythonに依存するライブラリが必要なので、まずPythonライブラリPIL(Python Imaging Library)をインストールする必要があります.そうしないと、「ImportError:No module named Image」というエラーが発生します.
コードは次のとおりです.
#!/usr/bin/python
# -*- encoding: UTF-8 -*-
# test created on 14-10-28 12:48
# Copyright 2014 [email protected]
"""
logo
"""
__author__ = ['"Xitao":<[email protected]>']
import qrcode
from PIL import Image
import os
def gen_qrcode(string, path, logo=""):
"""
logo
qrcode, PIL
:param string:
:param path:
:param logo: logo
:return:
"""
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)
img = qr.make_image()
img = img.convert("RGBA")
if logo and os.path.exists(logo):
icon = Image.open(logo)
img_w, img_h = img.size
factor = 4
size_w = int(img_w / factor)
size_h = int(img_h / factor)
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)
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)
if __name__ == "__main__":
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> gen_qrcode("http://offbye.com","qr.png", "logo.png")</span>