生成個性二維碼_CodingPark編程公園

什麼是二維碼

二維碼 (2-dimensional bar code),是用某種特定的幾何圖形按一定規律在平面(二維方向上)分佈的黑白相間的圖形記錄數據符號信息的。

因此,在轉換的過程中,離不開編碼壓縮方式。在許多種類的二維條碼中,常用的碼制有:Data Matrix, Maxi Code, Aztec, QR Code, Vericode, PDF417, Ultracode, Code 49, Code 16K等。二維碼在現實生活中的應用越來與普遍,歸於功於 QR code 碼制的流行。我們常說的二維碼就是它。

所以,二維碼又被稱爲 QR code。QR code 是一種矩陣式二維條碼(又稱棋盤式二維條碼)。它是在一個矩形空間通過黑、白像素在矩陣中的不同分佈進行編碼。在矩陣相應元素位置上,用點(方點、圓點或其他形狀)的出現表示二進制“1”,點的不出現表示二進制的“0”,點的排列組合確定了矩陣式二維條碼所代表的意義。

二維碼結構

我們的目的是要使用 Python 生成 QR 碼,那我們需要先了解二維碼(QR 碼)的結構。根據標準(ISO/IEC 18004),我們可以瞭解到 QR 碼結構如下:
在這裏插入圖片描述

  1. 功能圖形
    功能圖形是不參與編碼數據的區域。它包含空白區、位置探測圖形、位置探測圖形分隔符、定位圖形、校正圖形五大模塊。

空白區
顧名思義就是要留空白。因此,這裏不能有任何圖樣或標記。這樣才能保證 QR 能被識別。

位置探測圖形
這個有點類似中文的“回”字。在 QR 碼中有個這樣的標識,它分別的左上、右上和左下角。作用是協助掃描軟件定位 QR 碼並轉換座標系。我們在掃描二維碼的時候,不管是豎着掃、橫着掃、斜着掃都能識別出內容,主要是它的功勞。

位置探測圖形分隔符
主要作用是區分功能圖形和編碼區域。

定位圖形
它由黑白間隔的各自各自組成的線條。主要用於指示標識密度和確定座標系。原因是 QR 碼一種有 40 個版本,也就是說有 40 種尺寸。每種二維碼的尺寸越大,掃描的距離就越遠。

校正圖形
只有 Version 2 及以上的QR碼有校正標識。校正標識用於進一步校正座標系。

  1. 編碼區域
    編碼區域是數據進行編碼存儲的區域。它由格式信息、版本信息、數據和糾錯碼字三部分構成。

格式信息
所有尺寸的二維碼都有該信息。它存放一些格式化數據的信息,例如容錯級別、數據掩碼,和額外的自身 BCH 容錯碼。

版本信息
版本信息是規定二維碼的規格。前面講到 QR 碼一共有 40 種規格的矩陣(一般爲黑白色),從21x21(版本1),到177x177(版本40),每一版本符號比前一版本 每邊增加4個模塊。

數據和糾錯碼
主要是存儲實際數據以及用於糾錯碼字。

  1. 二維碼繪製過程

二維碼已經是有一套國際標準,繪製二維碼過程的嚴格按照標準來執行。這個過程是比較複雜,我自己也是看了大概,然後總結出大致繪製過程。如果你想深入瞭解繪製細節,可以閱讀標準。

二維碼的繪製大概過程如下:
1)在二維碼的左上角、左下角、右上角繪製位置探測圖形。位置探測圖形一定是一個 7x7 的矩陣。
2)繪製校正圖形。校正圖形一定是一個 5x5 的矩陣。
3)繪製兩條連接三個位置探測圖形的定位圖形。
4)在上述圖片的基礎上,繼續繪製格式信息。
5)接着繪製版本信息。
6)填充數據碼和糾錯碼到二維碼圖中。
7)最後是繪製蒙版圖案。因爲按照上述方式填充內容,可能會出現大面積的空白或黑塊的情況,導致掃描識別會十分困難。所以需要對整個圖像與蒙版進行蒙版操作(Masking),蒙版操作即爲異或 XOR 操作。在這一步,我們可以將數據排列成各種圖片。

完整代碼

from MyQR import myqr

# 普通的二維碼

words = 'https://codingpark.blog.csdn.net/'
myqr.run(
    words,
    save_name='普通的二維碼.png'
)

# 帶圖片
myqr.run(
    words,
    picture='Cod.png',
    colorized=True,
    save_name='帶圖片.png'
)


# 動圖
myqr.run(
    words,                  # 需要生成的二維碼網址鏈接
    picture='Cod.gif',      # 動態圖
    colorized=True,             # 彩色的還是黑白的
    save_name='動圖.gif'        # 保存爲.gif格式否則不是動圖
)


普通的二維碼

在這裏插入圖片描述

帶圖片

在這裏插入圖片描述

動圖

在這裏插入圖片描述

特別鳴謝

小碼哥

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章