用Python制作炫酷的專屬二維碼


Hi,大家好。在此之前介紹過二維碼如何測試:你們要的二維碼測試點來了,掃它!我們了解到,作為測試工程師如何測試二維碼。
那么怎么用代碼制作自己的個性化二維碼呢?本文就和小伙伴一起用Python來實現,制作一個專屬的二維碼。

一、二維碼相關知識

1.二維碼
二維碼( 2−Dimensional Barcode),又稱二維條形碼。它是用某種特定的幾何圖形按一定規律在平面(二維方向上)分布的黑白相間的圖形來記錄數據符號信息的;在代碼編制上巧妙地利用構成計算機內部邏輯基礎的“0”、“1”比特流的概念。
二維碼特征總結如下:

  • 二維碼有其特定的字符集,每個字符占有一定的寬度,每種碼具有一定的校驗功能,同時還具有對不同行的信息自動識別功能、及處理圖形旋轉變化等特點。

  • 二維條形碼是在二維空間水平和豎直方向存儲信息的條形碼。它的優點是信息容量大,譯碼可靠性高,糾錯能力強,制作成本低,保密與防偽性能好。

  • 二維碼使用若干個與二進制相對應的幾何形體來表示文字數值信息,通過圖像輸入設備或光電掃描設備自動識讀以實現信息自動處理。

 

目前,世界上應用最多的二維條碼符號有Aztec Code、PDF147、QR Code等。 

 

 2.常見二維碼介紹

(1)  MyQR

 

MyQR可以生成常見的二維碼、藝術二維碼(黑白或彩色), 動態二維碼(黑白或彩色)。

 

MyQR好用,唯一的缺點就是,不支持中文,它只支持以下字符:

  • 數字 0 到 9;

  • 大小寫的英文字母;

  • 常用英文標點符號和空格;



(2)  QR Code

QR Code是常見的二維碼之一,QR全稱是Quick Response,是一個近幾年來移動設備上超流行的一種編碼方式。它的結構如下:

 

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

  • 符號規格從版本1(21×21)到版本40(177×177),每提高一個版本,每邊增加4個碼元(即指構成QR碼的方形黑白點);

  • 信息容量大:能存儲7089個數字字符或4296個字母字符或2953個8位字節字符或1817漢字字符;

  • 糾錯能力強:即使部分編碼變臟或破損,也可以恢復數據。L級約可糾錯7%的數據碼字,M級約可糾錯15%的數據碼字,Q級約可糾錯25%的數據碼字,H級約可糾錯30%的數據碼字;

  • 可以從任意方向讀取:QR碼可以從360°任一方向均可快速讀取。通過QR碼中的三處定位圖案,可以幫助QR碼不受背景樣式的影響,實現快速穩定的讀取。

  • MyQR制作二維碼

     

    MyQR 庫是 Python 中最流行的二維碼制作函數庫。它通過一個簡單的函數就可以生成生動有趣的二維碼,可謂是二維碼制作神器。

    1
    MyQR介紹

    (1)  MyQR安裝

    在系統命令行輸入安裝命令,等到提示下載成功即可。

     

     

    (2)  MyQR參數

    使用 MyQR 庫中的一個模塊 myqr 來制作二維碼,引用方式為from MyQR import myqr其參數如下所示:

    參數 類型 說明
    words str 二維碼內容,鏈接或者句子
    version int 二維碼大小,范圍為[1,40],默認1,即21*21
    level str 二維碼糾錯級別,范圍為{L,M,Q,H},默認L,H為最高級
    picture str 自定義二維碼背景圖,支持格式為 .jpg,.png,.bmp,.gif,默認為黑白色
    colorized bool 二維碼背景顏色,默認為 False,即黑白色
    contrast float 對比度,值越高則對比度越高,默認為 1.0
    brightness float 亮度,值越則高亮度越高,默認為 1.0,值常和對比度相同
    save_name str 二維碼名稱,默認為 qrcode.png
    save_dir str 二維碼路徑,默認為程序當前工作路徑

    MyQR安裝完成,接下來就可以愉快使用了。

    2
    制作MyQR二維碼

    (1)  MyQR 普通二維碼

    普通二維碼指的是沒有背景圖片的二維碼。示例代碼如下: 

  •  

     

  • 運行后,注意PyCharm中不會有什么變化,默認名為ITester_1.png的二維碼會存放在save_dir指定的路徑文件夾。如上代碼,我的二維碼圖片就生成在當前項目路徑下。

     

    生成普通二維碼,效果如圖所示:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM