1. 程式人生 > 實用技巧 >利用python生成定製二維碼

利用python生成定製二維碼

目錄

概述

Python 二維碼生成器

可生成普通二維碼、帶圖片的藝術二維碼(黑白與彩色)、動態二維碼(黑白與彩色)。

安裝

# 通過 pip
pip(3) install myqr(or MyQR)

使用方法

命令列方式

提示:如果你尚未安裝 MyQR ,以下內容請使用python(3) myqr.py 而非myqr 。)

# 概括
myqr 	Words
		[-v {1,2,3,...,40}]
		[-l {L,M,Q,H}]
        [-n output-filename]
		[-d output-directory]
		[-p picture_file]
		[-c]
		[-con contrast]
		[-bri brightness]

普通二維碼

直接在終端命令列輸入以下示例即可生成二維碼圖片。

#1 Words
myqr https://github.com
  • 在命令後輸入連結或者句子作為引數,然後在程式的當前目錄中產生相應的二維碼圖片檔案,預設命名為” qrcode.png“。
#2 -v, -l
myqr https://github.com -v 10 -l Q
  • 預設邊長是取決於你輸入的資訊的長度和使用的糾錯等級;

    預設糾錯等級是最高階的H。

  • 自定義:如果想要控制邊長和糾錯水平就使用 -v-l 引數。

    -v 控制邊長,範圍是1至40,數字越大邊長越大;

    -l 控制糾錯水平,範圍是L、M、Q、H,從左到右依次升高。

#3 -n, -d
myqr https://github.com -n github_qr.jpg  -d .../paths/
  • 預設輸出檔名是“ qrcode.png ",而預設儲存位置是當前目錄。

  • 自定義:可以自己定義輸出名稱和位置。注意同名檔案會覆蓋舊的。

    -n 控制檔名,格式可以是 .jpg.png.bmp.gif

    -d 控制位置。

藝術二維碼

#1 -p
myqr https://github.com -p github.jpg
  • 引數-p 用來將QR二維碼影象與一張同目錄下的圖片相結合,產生一張黑白圖片。
#2 -c
myqr https://github.com -p github.jpg -c
  • 加上引數 -c 可以使產生的圖片由黑白變為彩色的。
#3 -con, -bri
myqr https://github.com -p github.jpg [-c] -con 1.5 -bri 1.6
  • 引數-con 用以調節圖片的對比度,1.0 表示原始圖片,更小的值表示更低對比度,更大反之。預設為1.0
  • 引數 -bri 用來調節圖片的亮度,其餘用法和取值與 -con 相同。

動態GIF二維碼

動態二維碼與上述的帶圖片的二維碼的生成方法沒什麼區別,你只要採用 .gif 格式的圖片即可生成黑白或者彩色的動態二維碼。但注意如果使用了 -n 引數自定義輸出的二維碼檔名,切記其格式也必須是 .gif 格式。

作為匯入檔案

# 安裝模組後
from MyQR import myqr
version, level, qr_name = myqr.run(
	words,
    version=1,
    level='H',
    picture=None,
    colorized=False,
    contrast=1.0,
    brightness=1.0,
    save_name=None,
    save_dir=os.getcwd()
	)

以下各個引數已經在上文有所介紹

# help(myqr)
Positional parameter
   words: str

Optional parameters
   version: int, from 1 to 40
   level: str, just one of ('L','M','Q','H')
   picutre: str, a filename of a image
   colorized: bool
   constrast: float
   brightness: float
   save_name: str, the output filename like 'example.png'
   save_dir: str, the output directory

使用提示

  • 請採用正方形或近似正方形的圖片

  • 建議在圖片尺寸大的時候使用 -v 的值也應該適當變大。

  • 如果圖片有透明無色部分,最終效果是:

    你可以將透明部分修改成白色,最終效果會變成

可用字元

  • 數字 0 到 9

  • 大小寫的英文字母

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

    · , . : ; + - * / \ ~ ! @ # $ % ^ & ` ' = < > [ ] ( ) ? _ { } | and  (space)
    

MyQR 引數

從官方文件整理的常用引數如下:

  • -n:生成二維碼的名稱
  • -p:二維碼加入的圖片,支援.jpg.gif.png.bmp 格式
  • -c:選擇是否生成彩色二維碼,如果不設定預設為黑白
  • -v:控制邊長,範圍是 1 至 40,數字越大邊長越大
  • -l:控制糾錯水平,範圍是 L、M、Q、H 從左到右依次升高
  • -d:控制輸出二維碼的儲存位置
  • -con:用以調節圖片的對比度,1.0 表示原始圖片,更小的值表示更低對比度,更大反之。預設為 1.0
  • -bri:用來調節圖片的亮度,其餘用法和取值與 -con 相同

二維碼分類介紹

二維碼有以下幾種分類

  1. 黑白和彩色碼

    • 黑白碼
    • 彩色碼
  2. 融合和視覺碼

    • 融合碼:就是將內容與二維碼融合使它們成為一個整體,圖片由二維碼組成,二維碼就是圖片的一部分。這種比較適合使用構造簡單的圖片或者文字做美化主體內容

    • 視覺碼:以圖片為背景,再在圖片上構建很多特殊的點,這些點不會影響背景的視覺效果

  3. 藝術碼

    • 藝術二維碼,就是將二維碼進行的各個“碼眼”按照設計師的構思進行分析、拆解、合併,再在那些“碼眼”區域填充上一些小素材元素,最後形成一個別具特色二維碼