日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python qrcode二维码操作——(一)简单使用qrcode

發布時間:2024/3/12 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python qrcode二维码操作——(一)简单使用qrcode 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

既然我們是要對二維碼進行創建和解析,那我們就必須先來認識一下什么是二維碼:
二維碼是一種在一維碼基礎上擴展出來的可讀性條碼,用黑白矩形圖案表示二進制數據;那么問題又來了,一維碼又是什么?下面我們經常會在包裝袋上面看到的條形碼:

這就是一維碼,我們可以看見它是由長度相同,粗細不同的線條構成,那么他是什么存儲數據的呢?那我們就要找不同點,粗細是他們的變量,即用寬度存儲數據,這是一維方案;
二維碼就是在一維碼的基礎上,長度和寬度都記錄著數據,這就是上面說的在一維的基礎上又增加一個維度;二維碼還有一維碼沒有的定位點和容錯機制,容錯機制可以在沒有辨別全部條碼的時候正確還原條碼上的信息,這樣就能保證在條碼有破損的時候還能夠正確還原;
二維碼的種類有很多,這里就不贅述了,下面放出我博客的二維碼來結束這一趴:

那么我們接下來就來學習一下qrcode庫的使用:

  • 安裝qrcode庫和pillow庫 pip install pillow # 因為這個庫是qrcode的依賴庫,用于處理圖像 pip install 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):
    ???????
  • 我們接下來就自定義屬性參數來生成一個二維碼: import qrcodeqr = qrcode.QRCode(version=10,error_correction=qrcode.constants.ERROR_CORRECT_L,box_size=20,border=10 )qr.add_data('https://blog.csdn.net/u014663232') # 添加二維碼數據 qr.make() # 將數據編譯成qrcode數組 image = qr.make_image() # 生成二維碼圖片 image.save('geeknuo_csdn2.png') # 保存二維碼圖片
  • 總結

    以上是生活随笔為你收集整理的Python qrcode二维码操作——(一)简单使用qrcode的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。