使用して、2次元コードを生成するQRコード
序文
さて、シーンの二次元コードを使用人生はどこにでも言えます。特にモバイル決済、携帯電話への支払いページジャンプは、2次元コードをスキャンするために、私たちは、このシナリオには見知らぬ世界ではないと信じています。
最も一般的に私たちの日常の二次元コードに使用される(また、二次元バーコードのチェス盤としても知られる)は、2次元マトリックスバーコードです。異なるマトリクス分布にエンコードされ、黒と白の画素を矩形状の空間です。点を持つ要素の表示され、対応する行列位置(正方形ドット、ドットまたは他の形状)のバイナリを表す「1」、ドットは「0」が表示されていないバイナリを表し、置換点はマトリクス次元バーコードによって決定されますそれが何を意味するのか。
それでは、ペンシルベニアPaが2次元コード画像を生成するためのPythonを使用する方法をみましょう。
単純な二次元コード生成
- インストールのQRコードライブラリ
pip install qrcode
国内のネットワーク速度のため、そして時には回をダウンロードし、ピップの国内発生源を使用することをお勧めします
pip install qrcode -i https://pypi.douban.com/simple
QRコードは、彼らがスマンとして、パッケージをインストールする必要がありますので、ピップの国内発生源の使用を推奨、イメージパッケージを依存しています
pip install Image -i https://pypi.douban.com/simple
- 単純な二次元コードを生成
インストール後、それはしようとする単純な二次元コードを生成します。(私は密かに2次元コード[ヘッド] [ヘッド]を生成ブログのホームアドレスを使用します)
data = "https://blog.csdn.net/m1090760001"
img = qrcode.make(data)
img.show()
img.save("qr_code.png")
効果を実行してみてください
- 二次元コードを生成する通常の工程:
- オブジェクトを作成するQRコード
- add_dataは、データを追加する)(あります
- 二次元コード(リターンIM画像オブジェクトの種類)を作成するmake_image()
- 自動的に)(絵、im.showを開きます
上記ケースQRコードは、単純なコール・インタフェースを提供するので、我々は、二次元コード生成の実現にIMG = qrcode.make(データ)を使用します。実際には、ビューのソースコードを見ることができます:
def make(data=None, **kwargs):
qr = QRCode(**kwargs)
qr.add_data(data)
return qr.make_image()
第二に、カスタムの二次元コード
あなたは、より複雑な2次元コードを生成したい場合は、関連するプロパティを設定する方法を知っている必要があります。
- 基本パラメータ:
- バージョン:1から40までの整数、二次元コードのサイズを表す(最小値は1であり、12×12の行列である)、あなたが真自動的に生成されたパラメータ、および即ち使用フィット=なしの値が必要な場合ことができます。(デフォルトは自動的に生成されます)
- error_correction:二次元コードは、エラー訂正範囲は、4つの定数を選択してもよいです。
プロパティ | 説明 |
---|---|
ERROR_CORRECT_L | エラーの7%が修正されます |
ERROR_CORRECT_M | エラーの15%が修正されます(デフォルト) |
ERROR_CORRECT_Q | 25%以下の誤差の補正されます |
ERROR_CORRECT_H | エラーの30%が修正されます |
- ドットあたりの画素数(ブロック)の:boxsize
- ボーダー:周囲からの画像フレームから二次元コード、デフォルトは4であり、そして4の最小の関連規定
- 充填されたグリッドの色を設定し、背景色の設定、二次元コード
# 设置红色的填充格,背景色为白色的二维码
img = qr.make_image(fill_color="red", back_color="white")
画像に加え、二次元コード3.
PIL画像ライブラリモジュールペースト機能を利用することができ
# img为二维码图片对象,path标识要添加的图片对象,where表示图片位置
img.paste(path,where,mask=None)
ここで、被写体像のIMG;などのタプルである加算画像のパス:画像は、二次元コードの水平および垂直座標を表す(x、y)を、。
より複雑な達成するために、ソースコードの実数部を参照してください、ありがとうございました!
第三に、実際の
# -*- coding: utf-8 -*-
# 生成二维码
import qrcode
from PIL import Image
# 生成二维码
def mark_qrcode(data):
img = qrcode.make(data)
img.show()
img.save("qr_code.png")
def mark_my_qrcode(data):
qr = qrcode.QRCode(
version=4,
error_correction=qrcode.constants.ERROR_CORRECT_H,
border=4,
)
qr.add_data(data)
qr.make(fit=True)
# 设置红色白底的二维码
img = qr.make_image(fill_color="red", back_color="white")
img_w, img_h = img.size
# 获取logo
icon = Image.open("m1090760001.jpg")
icon_w, icon_h = icon.size
# 设置图片最大尺寸6:1
factor = 6
size_w = int(img_w / factor)
size_h = int(img_h / factor)
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)
# 获取中心的坐标
c_w = int((img_w - icon_w) / 2)
c_h = int((img_h - icon_h) / 2)
img.paste(icon, (c_w, c_h), mask=None)
img.show()
if __name__ == "__main__":
data = "https://blog.csdn.net/m1090760001"
# mark_qrcode()
mark_my_qrcode(data)
画像次のように生成された実際の効果(上記コードリーダーを実行し、画像を準備し、またはエラーになります)。