有趣的二維碼:用 MyQR 和 qrcode 製作二維碼

2021-02-14 Python極客專欄
https://blog.csdn.net/qq_42730750/article/details/108877378【導語】:現在都強調個性,那麼怎麼動手製作自己的個性化二維碼呢?本文就跟大家一起探討製作二維碼的方法。1. 二維碼二維碼( 2−Dimensional Barcode),又稱二維條形碼。它是用某種特定的幾何圖形按一定規律在平面(二維方向上)分布的黑白相間的圖形來記錄數據符號信息的;在代碼編制上巧妙地利用構成計算機內部邏輯基礎的「0」、「1」比特流的概念,使用若干個與二進位相對應的幾何形體來表示文字數值信息,通過圖像輸入設備或光電掃描設備自動識讀以實現信息自動處理。二維碼有其特定的字符集,每個字符佔有一定的寬度,每種碼具有一定的校驗功能,同時還具有對不同行的信息自動識別功能、及處理圖形旋轉變化等特點。二維條形碼是在二維空間水平和豎直方向存儲信息的條形碼。它的優點是信息容量大,解碼可靠性高,糾錯能力強,製作成本低,保密與防偽性能好。目前,世界上應用最多的二維條碼符號有Aztec Code、PDF147、QR Code等。常見的二維碼為QR CodeCode,QR全稱是Quick Response,是一個近幾年來行動裝置上超流行的一種編碼方式。它的結構如下:QR Code屬於矩陣式二維條碼,又稱棋盤式二維條碼。它是在一個矩形空間通過黑、白像素在矩陣中的不同分布進行編碼。在矩陣相應元素位置上,用點(方點、圓點或其他形狀)的出現表示二進位「1」,點的不出現表示二進位的「0」,點的排列組合確定了矩陣式二維條碼所代表的意義。主要有以下特點:1. 符號規格從版本1(21×21)到版本40(177×177),每提高一個版本,每邊增加4個碼元(即指構成QR碼的方形黑白點);2. 信息容量大:能存儲7089個數字字符或4296個字母字符或2953個8位字節字符或1817漢字字符;3. 糾錯能力強:即使部分編碼變髒或破損,也可以恢復數據。L級約可糾錯7%的數據碼字,M級約可糾錯15%的數據碼字,Q級約可糾錯25%的數據碼字,H級約可糾錯30%的數據碼字;4. 可以從任意方向讀取:QR碼可以從360°任一方向均可快速讀取。通過QR碼中的三處定位圖案,可以幫助QR碼不受背景樣式的影響,實現快速穩定的讀取。
MyQR可以生成常見的二維碼、藝術二維碼(黑白或彩色), 動態二維碼(黑白或彩色),安裝命令如下:
if __name__ == '__main__':    version, level, qr_name = myqr.run(        words='https://xxx.com/ccc',        version=1,        level='H',        picture='./XKD.gif',        colorized=True,        contrast=1.0,        brightness=1.0,        save_name='test4.gif',        save_dir=os.getcwd()    )print(version)print(level)    print(qr_name)

MyQR確實是挺好用的,唯一的缺點就是,不支持中文!!!沒錯,是不是有點遺憾,它只支持以下字符:3. qrcodeqrcode的功能雖稍遜於MyQR,但是它支持中文字符,且能生成矢量圖,安裝命令如下:
def mergeImg(img1, img2, flag=True):"""    合併圖像    :param img1:    :param img2:    :param flag: True 表示將logo居中, False 表示將logo作為背景圖    :return:    """    img1_w, img1_h = img1.sizeif flag:        img2_w = int(img2.size[0] / 3)        img2_h = int(img2.size[1] / 3)# 縮放logo        img2 = img2.resize(size=(img2_w, img2_h), resample=Image.ANTIALIAS)# 將logo居中顯示        img1.paste(im=img2, box=(int((img1_w - img2_w) / 2), int((img1_h - img2_h) / 2)))        img1.save('./test8.png')else:        img2 = img2.resize(size=(img1_w, img1_h), resample=Image.ANTIALIAS)# 兩張圖片的size和mode要一致# 計算公式為out = image1 * (1.0 - alpha) + image2 * alpha# 這裡的背景色就是一種幹擾了, 如果將二維碼的透明度設置過高會識別不出來        out_img = Image.blend(img1, img2, alpha=0.3)        out_img.save('./test9.png')

if __name__ == '__main__': qr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=10, border=4, ) qr.add_data('https://xxx.com/ccc') qr.make(fit=True)
# black green purple orange pink white blue# make_image() 返回的是一個PilImage對象# 可以使用pillow對它進行圖像處理相關的操作# img1 = qr.make_image(fill_color="#8A2BE2", back_color="white") img1 = qr.make_image(fill_color="orange", back_color="white").convert('RGB')# img1.show()# img1.save('./test6.png')
img2 = Image.open('./cutcamera.png').convert('RGB') mergeImg(img1, img2, flag=True)

如有文章對你有幫助,

「在看」和轉發是對我最大的支持


關注Python極客專欄

相關焦點

  • 詳解 Python qrcode 二維碼模塊
    聲明import qrcode使用QRCode 方法qrcode.QRCode(    version=1,    error_correction=qrcode.ERROR_CORRECT_L4、clear:清空數據5、get_matrix:返回二維碼數組。6、print_ascii(out=None, tty=False, invert=False):這個方法就比較有趣了,可以用字符畫的形式來輸出二維碼,但是掃的時候一般都掃不出來。
  • PHP QR Code生成二維碼
    二行代碼解決二維碼生成問題先來說說二維碼是神馬東西        二維條碼/二維碼(2-dimensional bar code)是用某種特定的幾何圖形按一定規律在平面
  • 使用python-qrcode生成圖形二維碼
    qrcode -i  http://mirrors.aliyun.com/pypi/simple/二.參數介紹 1version             # (參數:1-40)二維碼的大小               2fit                 # (True/False)自動調整大小 3error_correction    # 控制二維碼糾錯級別
  • 【從零學習OpenCV 4】QR二維碼檢測
    straight_qrcode:經過校正和二值化的QR二維碼。該函數能夠根據二維碼定位的結果信息對二維碼進行解碼,以string類型的返回值輸出解碼結果。該函數前兩個參數與detect()函數的兩個參數含義相同,不過該函數的第二個參數是輸入值,數據量不能為空。
  • 圖片二維碼生成工具 visual-qr-code | 軟體推介
    visual-qr-code 是開源的圖片二維碼生成工具,可以創建出精美的二維碼授權協議
  • 【Python應用】玩轉動態二維碼
    以下的內容中,你將會了解到二維碼的基本知識並且學會製作一個屬於你自己的動態二維碼。一起來吧。先來了解一下定義,二維碼是用某種特定的幾何圖形按一定規律在平面(也即二維方向上)分布的黑白相間的圖形記錄數據符號信息的,它利用了計算機內部邏輯「0」「1」的概念,用幾個與二進位相對應的幾何圖形來表示文字信息,每種碼都有特定的字符集。
  • 走進二維碼(QR Code)的世界之引言
    今天痞子衡給大家分享的是走進二維碼(QR Code)的世界專題的引言。如今二維碼可以說是深入走進大家的生活了,推送名片、掃碼支付都離不開它,大家幾乎每天都會和二維碼打交道。雖然大家都知道二維碼的各種應用,但很多人並不知道二維碼的原理。
  • 集合啦動物森友會二維碼怎麼用 qr碼用法介紹
    集合啦動物森友會二維碼怎麼用,相信很多玩家都知道,遊戲裡面有個設計衣服元素的玩法,玩家可以通過自己的設計保存下來,產生一個二維碼,而這個二維碼需要通過手機配合才能夠使用的,假如你這件衣服很漂亮,其他玩家看到了,也許就會向你討要個二維碼來試穿一下,下面給大家簡單介紹下動物之森二維碼的用法以及注意情況。 1.
  • 二維碼「QR Code」中的「QR」到底是什麼意思?
    [Photo/Xinhua] 先來說說「二維碼」的英文說法:QR Code 「二維碼」的英文是「QR Code」,這個很多同學應該都知道。但「QR」是什麼意思呢? 其實它是「Quick Response」的縮寫,反映出這種二維碼具有「超高速識讀」的特點。
  • 掃描二維碼 Scan a QR code
    早上送寶寶上學,需要在校門口用手機掃描一下屏幕上的二維碼才能進門。因為每天都要重複這個動作,正好讓寶寶自己嘗試一下。
  • 譯詞 | 「二維碼」為什麼譯為 QR code?
    >那你知道二維碼用英語怎麼說嗎?我們常用二維碼的英文是QR codeQR code=quick response code即快速響應碼實用例句:You can scan the QR code to get red packets.掃二維碼就可領紅包。Scan my QR code, you can friend me.
  • Go語言生成二維碼是如此簡單
    那麼二維碼是如何製作生成的呢?我們如何製作自己的二維碼呢?什麼是二維碼?二維條碼是指在一維條碼的基礎上擴展出另一維具有可讀性的條碼,使用黑白矩形圖案表示二進位數據,被設備掃描後可獲取其中所包含的信息。一維條碼的寬度記載著數據,而其長度沒有記載數據。二維條碼的長度、寬度均記載著數據。二維條碼有一維條碼沒有的「定位點」和「容錯機制」。
  • Python使用QRCode生成二維碼
    qrcode和Image:pip install qrcodepip install Image首先我們來寫一個最簡單的案例,生成一個內容為hello sunxiaoning的二維碼,保存到本地,執行以下腳本,就可以生成一個hello.png的文件,並且自動打開。
  • 每天掃二維碼的你,真的了解它嗎?
    簡介我們可以先試著生成一個二維碼。https://kazuhikoarase.github.io/qrcode-generator/js/demo/col < qrcode.getModuleCount(); col++ ){          ctx.fillStyle = qrcode.isDark(row, col) ?
  • 手把手教你怎麼使用微信的二維碼識別引擎
    導讀用過二維碼識別的小夥伴們都知道,微信的二維碼識別確實要比開源的二維碼識別zxing和zbar要強不少,zxing和zbar對小的二維碼以及模糊的二維碼基本上是識別不出來的
  • 讓你的二維碼變得好看
    0  前言上一篇介紹了用 Python 來生成彩色動態的二維碼,感覺對一般人來說用起來有點小麻煩,所以,今天介紹一下一些已經封裝好了的,至少用起來舒服。老老實實地說一句話,我真的看到那種黑白且單調的二維碼就覺得煩厭和難受,一直都覺得難受的那種。
  • 集合啦動物森友會QR二維碼碼掃描與導入衣服教程
    集合啦動物森友會QR二維碼碼掃描與導入衣服教程 1. 在Android或IOS設備上下載 Nintendo Switch Online app。 IOS需要玩家使用非國區帳號,在商店搜索Nintendo Switch Online app即可。
  • Python生成一維碼,二維碼
    我們的生活已完全離不開一維碼和二維碼,本文會簡單的介紹如果通過python的方法來生成它們
  • 「二維碼」這麼火,英文怎麼說?
    「二維碼」英文可譯為2-D barcodes (two-dimensional barcodes的縮寫)
  • 怎麼實現通過掃描二維碼進行登錄?
    首先,任何一個二維碼表示的都是一串字符串。