Python qrcode二维码操作——(一)简单使用qrcode
既然我們是要對二維碼進行創建和解析,那我們就必須先來認識一下什么是二維碼:
二維碼是一種在一維碼基礎上擴展出來的可讀性條碼,用黑白矩形圖案表示二進制數據;那么問題又來了,一維碼又是什么?下面我們經常會在包裝袋上面看到的條形碼:
這就是一維碼,我們可以看見它是由長度相同,粗細不同的線條構成,那么他是什么存儲數據的呢?那我們就要找不同點,粗細是他們的變量,即用寬度存儲數據,這是一維方案;
二維碼就是在一維碼的基礎上,長度和寬度都記錄著數據,這就是上面說的在一維的基礎上又增加一個維度;二維碼還有一維碼沒有的定位點和容錯機制,容錯機制可以在沒有辨別全部條碼的時候正確還原條碼上的信息,這樣就能保證在條碼有破損的時候還能夠正確還原;
二維碼的種類有很多,這里就不贅述了,下面放出我博客的二維碼來結束這一趴:
那么我們接下來就來學習一下qrcode庫的使用:
import qrcode # 導入庫img = qrcode.make('https://blog.csdn.net/u014663232') # 最后會返回一個qrcode.image.pil.PilImage對象,最后會返回一個二維碼圖片對象 img.save('geeknuo_csdn.png') # 調用save()方法將圖片對象保存下來
接下來我們通過原型來看下,它都做了些什么:
我們可以看見make()方法在開始創建了一個QRCode對象,然后調用add_data()方法,將我們數據信息添加了進去,最后調用make_image()方法返回了圖片對象;
那么我們可以推出最終產生圖片的地方肯定在make_image()里面,我們接下來看:
? 1)首先檢查數據有沒有編譯,如果沒有編譯,就需要先進行編譯;
? 2)image_factory我這邊理解的是生成器,這邊我們可以指定生成器,如果沒有指定的話,這里就會使用PIL作為生成器,這就是為什么依賴pillow庫的原因;
? 3)最后就是生成圖像并返回了,這里還涉及到了等等的參數,下面再詳細說明;
既然make()最開始是創建了一個QRCode對象,那么我們先來看下QRCode()中有什么:
那么我們可以看見有這里有6個參數:
? 1)version 表示二維碼的版本號,一種有1~40個版本,最小是21*21,每增加一個版本會增加4個尺寸(注意:這里的尺寸并不是指生成圖片的大小,而是二維碼的長寬被分成了多少份)
? 2)error_correction 指的是糾錯容量,這就是為什么在二維碼上面放張圖片還可以被識別出來的原因,它一共有四個級別:
??????? ERROR_CORRECT_L:大約7%或更少的錯誤能被糾正
??????? ERROR_CORRECT_M(默認):大約15%或更少的錯誤能被糾正
??????? ERROR_CORRECT_Q:大約25%或更少的錯誤能被糾正
??????? ERROR_CORRECT_H:大約30%或更少的錯誤能被糾正
? 3)box_size 指的是生成圖片的像素,所以這里是定義大小的,我們可以看見上面,默認為10
? 4)border 表示二維碼邊框的寬度,同樣的,上面默認是4,也是最小值
? 5)image_factory 的參數繼承了qrcode.image.base.BaseImage類,其中可以選擇的類保存在模板根目錄的image文件夾下
???????
? 6)mask_pattern 選擇生成圖片的掩模,掩模這邊一句兩句說不清楚,可以自行百度,或者看后面的鏈接,我們來看下掩模的過程(圖片來自:http://www.360doc.com/content/16/0919/08/9261962_591906164.shtml):
???????
總結
以上是生活随笔為你收集整理的Python qrcode二维码操作——(一)简单使用qrcode的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python wifi模块
- 下一篇: MATLAB Linear Analys