Pythonの戦闘:使用は、2次元コードを生成するQRコード

序文

さて、シーンの二次元コードを使用人生はどこにでも言えます。特にモバイル決済、携帯電話への支払いページジャンプは、2次元コードをスキャンするために、私たちは、このシナリオには見知らぬ世界ではないと信じています。

最も一般的に私たちの日常の二次元コードに使用される(また、二次元バーコードのチェス盤としても知られる)は、2次元マトリックスバーコードです。異なるマトリクス分布にエンコードされ、黒と白の画素を矩形状の空間です。点を持つ要素の表示され、対応する行列位置(正方形ドット、ドットまたは他の形状)のバイナリを表す「1」、ドットは「0」が表示されていないバイナリを表し、置換点はマトリクス次元バーコードによって決定されますそれが何を意味するのか。

それでは、ペンシルベニアPaが2次元コード画像を生成するためのPythonを使用する方法をみましょう。

単純な二次元コード生成

  1. インストールのQRコードライブラリ
pip install qrcode 

国内のネットワーク速度のため、そして時には回をダウンロードし、ピップの国内発生源を使用することをお勧めします

pip install qrcode -i https://pypi.douban.com/simple

QRコードは、彼らがスマンとして、パッケージをインストールする必要がありますので、ピップの国内発生源の使用を推奨、イメージパッケージを依存しています

pip install Image -i https://pypi.douban.com/simple
  1. 単純な二次元コードを生成

インストール後、それはしようとする単純な二次元コードを生成します。(私は密かに2次元コード[ヘッド] [ヘッド]を生成ブログのホームアドレスを使用します)

data = "https://blog.csdn.net/m1090760001"
img = qrcode.make(data)
img.show()
img.save("qr_code.png")

効果を実行してみてください
ここに画像を挿入説明

  1. 二次元コードを生成する通常の工程:
  • オブジェクトを作成する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. 基本パラメータ:
  • バージョン: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の最小の関連規定
  1. 充填されたグリッドの色を設定し、背景色の設定、二次元コード
# 设置红色的填充格,背景色为白色的二维码
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)

画像次のように生成された実際の効果(上記コードリーダーを実行し、画像を準備し、またはエラーになります)。
ここに画像を挿入説明

公開された19元の記事 ウォン称賛67 ビュー20000 +

おすすめ

転載: blog.csdn.net/m1090760001/article/details/103192295
おすすめ