一行Python代碼生成酷炫/惡搞/表白二維碼(內附源碼)

一行代碼製作酷炫的二維碼

1.二維碼能用的完嗎?

很多人都掃過二維碼,大部分人的印象都是黑白相間的小方塊,實際上二維碼是運用了計算機圖像處理技術,組合編碼原理的一種編碼,其用黑白像素點的圖像來代表二進制中的“1”和“0”,通過對點的排列組合來表達其所代表的意義所以二維碼的本質是將數據轉換一種方式存儲。無論誰生成一個含有“多人運動,五人開黑”內容的二維碼,最後輸出的二維碼是一樣的。

二維碼最關鍵的信息如下,只要能掃到這5個部分就能掃到二維碼的內容,不然你可以用手指頭擋住其中任何一個部分可以掃出來試試看。

那麼一張二維碼最多能存儲多少信息呢?二維碼是有大小限制的,最大的二維碼是版本40的二維碼177 * 177。最小的版本1的二維碼是21 * 21。如果用最大的二維碼存儲數據,可以存7089個數字或4296個字母,23624bit的數據,就像圖下所示,你的手機能掃出來嗎?(終於找到換手機的理由了,二維碼都掃不出來🐶)

版本40的二維碼
版本40的二維碼

還有人擔心二維碼會不會用完,想引領時代先鋒開創3D碼。這裏我們可以算一下,最小版本的二維碼是21*21,一共有441個格子,每個格子只有黑或白兩種選擇,再減去二維碼固定數量的192個角落的定位框。21x21格式的二維碼有2的249次方種組合,這個數字有75位。如果中國人每天每秒掃1次碼,可以掃14.79億億億億億億億年(7個億),等用完賈躍亭都回國了。

2.一行代碼生成經典二維碼

用python的MyQR庫來製作一個二維碼只需要一行代碼,第一個參數輸入二維碼裏的內容(不能輸入中文),第二個參數輸入保存的二維碼圖片名稱即可生成一張二維碼。

from MyQR import myqr as mq
mq.run('https://www.zhihu.com/people/hou-yu-wen-80',save_name='ewm.png')

如果想生成帶中文的二維碼,需要使用qrcode庫來製作,也僅需要一行代碼可以生成出來

import qrcode
qrcode.make('我盧本偉沒有開掛').save('test.png')
import qrcode
qr = qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_L,box_size=10,border=4,)
qr.add_data('我盧本偉沒有開掛')
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
img.save('lbw.png')
"""參數含義:
version:值爲1~40的整數,控制二維碼的大小(最小值是1,是個12×12的矩陣)。 如果想讓程序自動確定,將值設置爲 None 並使用 fit 參數即可。
error_correction:控制二維碼的錯誤糾正功能。可取值下列4個常量。
  ERROR_CORRECT_L:大約7%或更少的錯誤能被糾正。
  ERROR_CORRECT_M(默認):大約15%或更少的錯誤能被糾正。
  ROR_CORRECT_H:大約30%或更少的錯誤能被糾正。
box_size:控制二維碼中每個小格子包含的像素數。
border:控制邊框(二維碼與圖片邊界的距離)包含的格子數(默認爲4,是相關標準規定的最小值)
"""

3.帶圖片二維碼

當然經典版的二維碼不能滿足我們對裝x的使用,這裏我們可以將自己女朋友的頭像做成二維碼,無形裝x最爲致命。

from MyQR import myqr as mq
mq.run('https://www.weibo.com/u/5644764907',
       picture="ycy.jpg",
       colorized=True,
       save_name='ycy_code.png')

只需要將picture參數裏導入對應的圖片即可生成有背景圖片二維碼,如果導入的圖片是gif格式,對應的則會生成動態二維碼。

運動健將
運動健將
籃球巨星
籃球巨星

4.可以製作惡搞/表白二維碼

如果把二維碼跟其他應用/網站聯繫在其一起將有出奇意外的效果,以下二維碼均有特殊的功能,可以慢慢享用。

惡搞二維碼
惡搞二維碼
表白二維碼
表白二維碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章