python生成二維碼
- 2019 年 10 月 6 日
- 筆記
最近因為工作需要生成二維碼,小編就去網上找了一些有關生成二維碼的資料,最方便的有在線生成的,鏈接如下:
https://cli.im/
好用得很,無論鏈接,文字還是圖片,音頻,名片它都可以包辦到位。
如果你打開上面的鏈接,發現已經很滿足了,那我們這一期就結束了。
如果你並沒有滿足這一點,還是想要繼續探索的話,那我們繼續。
在查找過程中,小編髮現python也有生成二維碼這樣一個很強大的庫,這裡我們介紹兩個包,第一個是qrcode,第二個是myqr。
首先我們需要把環境裝好,使用pip進行安裝:
pip install qrcode
pip install myqr

安裝完之後我們便可以使用它了。
首先我們來看看qrcode是如何生成二維碼的。
很簡單,就5行:
# -*- coding: utf-8-*-
import qrcode
words='https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzU1NDcwNTE2OA==&scene=126#wechat_redirect'
img = qrcode.make(words)
img.save('test.png')
img.show()
看結果:

生成了一張二維碼,就是這麼簡單。
下面我們來認識一下myqr,myqr和qrcode比起來確實變得豐富了不少,它可以做簡單的二維碼,也可以做漂亮的二維碼,還可以做動態的二維碼,比如這樣:

比如這樣:


再比如這樣:

又或者用你本人的照片,也都是ok的!

(請無視小編那張難看的臉

)
下面我就來教大家怎麼去用它吧!
首先,我們上程式碼:

(需要複製程式碼,點擊閱讀原文)
程式碼里的參數我們這邊來講解一下:
可以通過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 directorywords:傳入的網址url(以網頁為示例)
version:使用的版本,1-40之間
level:圖片的品質等級,目前只有LMQH可選
picture:使用的源圖片的所在路徑
colorized:是否為彩色,Ture是彩色,False為黑白
save_name:保存二維碼的名字
save_dir:保存二維碼的路徑
將參數都填全了,我們就可以直接運行程式碼了。
運行後就會有這樣的效果:





效果還不錯!
大家動手來試試吧!
當然,在安裝了myqr之後,我們也可以選擇不敲程式碼,直接使用終端指令來完成圖片的生成:
myqr "https://weixin.qq.com/cgi-bin/readtemplate?check=false&t=weixin_getdownurl_sms&s=download&from=100&stype=10037102" -v 1 -l Q -n "s_qr.gif" -p s.gif -con 1.2 -bri 1.2 -c
進入cmd終端,直接敲:

myqr後面的參數我解釋一下:

-v 控制邊長,範圍是1至40,數字越大邊長越大;
-l 控制糾錯水平,範圍是L、M、Q、H,從左到右依次升高。
-n 控制文件名,格式可以是 .jpg, .png ,.bmp ,.gif ;
-d 控制位置。
-c 可以使產生的圖片由黑白變為彩色的。
-p 用來將QR二維碼影像與一張同目錄下的圖片相結合,產生一張黑白圖片。
-con 用以調節圖片的對比度,1.0 表示原始圖片,更小的值表示更低對比度,更大反之。默認為1.0。
-bri 用來調節圖片的亮度,其餘用法和取值與 -con 相同。
s.gif是你要傳進去的圖片,s_qr,gif是生成的二維碼的名字。
如果想生成最簡單最普通的二維碼,可以直接在myqr後面加個想打開的網址就可以了:
myqr "https://weixin.qq.com/cgi-bin/readtemplate?check=false&t=weixin_getdownurl_sms&s=download&from=100&stype=10037102"

生成圖片(默認名字qrcode):

如果想了解二維碼的生成使用,項目地址:
https://github.com/sylnsfar/qrcode
如果想了解更多的關於python的內容,就請關注我吧!
(本篇文章的任何二維碼都可以掃哦!

)