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

2021-01-17 Python開發者

(給Python開發者加星標,提升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碼不受背景樣式的影響,實現快速穩定的讀取。

2. MyQR


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確實是挺好用的,唯一的缺點就是,不支持中文!!!沒錯,是不是有點遺憾,它只支持以下字符:

數字 0 到 9

大小寫的英文字母

常用英文標點符號和空格

3. qrcode

qrcode的功能雖稍遜於MyQR,但是它支持中文字符,且能生成矢量圖,安裝命令如下:


生成二維碼代碼如下:

def mergeImg(img1, img2, flag=True):    """    合併圖像    :param img1:    :param img2:    :param flag: True 表示將logo居中, False 表示將logo作為背景圖    :return:    """    img1_w, img1_h = img1.size    if flag:        img2_w = int(img2.size[0] / 3)        img2_h = int(img2.size[1] / 3)                img2 = img2.resize(size=(img2_w, img2_h), resample=Image.ANTIALIAS)                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)                                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)
img1 = qr.make_image(fill_color="orange", back_color="white").convert('RGB')
img2 = Image.open('./cutcamera.png').convert('RGB') mergeImg(img1, img2, flag=True)



- EOF -


覺得本文對你有幫助?請分享給更多人

關注「Python開發者」加星標,提升Python技能

點讚和在看就是最大的支持❤️

相關焦點

  • QR-Code Generator - 在線生成 QR-Code二維碼
    感謝eric4ever的投遞意中又發現了一個在線的 QR-Code Generator,可以為 URL 連結、文本、電話號碼和SMS 短消息生成永久連結的 QR Code 圖片和 HTML 代碼,並且可以選擇生成圖片的大小(四種類型:S、M、L、XL)。
  • JS+jQuery+qrcode.js實現前端生成二維碼
    為便於理解和演示,我做了一個簡單的HTML頁面(雖然我用的是Visual Studio創建的ASP頁面,但毫不影響你在其他地方用到本次演示的代碼)。實現過程是頁面打開時默認展示一個二維碼,用戶可以更改文本內容,更改生成二維碼的參數,例如尺寸、前景色、背景色等,點擊【生成二維碼】按鈕即可在下方生成一個二維碼,用手機微信或者QQ、百度等都可以識別輸入的內容,當輸入網址時還可以直接跳轉到網站頁面。下圖為效果樣式。
  • 用python做出屬於自己的二維碼
    1、前言自從網絡發達開始,二維碼這個東東日常伴隨著我們的生活。不論是你去超市買東西,或是線上支付等,有時候都會用到它,那麼今天就來分享下,如何用一分鐘製作一個屬於自己的二維碼。2、環境準備開始之前,首先要安裝一個 Python 的第三方庫 - myqr。
  • 走進二維碼(QR Code)的世界之引言
    今天痞子衡給大家分享的是走進二維碼(QR Code)的世界專題的引言。如今二維碼可以說是深入走進大家的生活了,推送名片、掃碼支付都離不開它,大家幾乎每天都會和二維碼打交道。雖然大家都知道二維碼的各種應用,但很多人並不知道二維碼的原理。
  • 集合啦動物森友會二維碼怎麼用 qr碼用法介紹
    集合啦動物森友會二維碼怎麼用,相信很多玩家都知道,遊戲裡面有個設計衣服元素的玩法,玩家可以通過自己的設計保存下來,產生一個二維碼,而這個二維碼需要通過手機配合才能夠使用的,假如你這件衣服很漂亮,其他玩家看到了,也許就會向你討要個二維碼來試穿一下,下面給大家簡單介紹下動物之森二維碼的用法以及注意情況。 1.
  • 二維碼「QR Code」中的「QR」到底是什麼意思?
    [Photo/Xinhua] 先來說說「二維碼」的英文說法:QR Code 「二維碼」的英文是「QR Code」,這個很多同學應該都知道。但「QR」是什麼意思呢? 其實它是「Quick Response」的縮寫,反映出這種二維碼具有「超高速識讀」的特點。
  • 二維碼 QR碼編碼原理詳解
    QR(Quick-Response) code是被廣泛使用的一種二維碼,解碼速度快。本文引用地址:http://www.eepw.com.cn/article/164738.htm它可以存儲多用類型如上圖時一個qrcode的基本結構,其中:位置探測圖形、位置探測圖形分隔符、定位圖形:用於對二維碼的定位,對每個QR碼來說,位置都是固定存在的,只是大小規格會有所差異;校正圖形:規格確定,校正圖形的數量和位置也就確定了;格式信息:表示改二維碼的糾錯級別,分為L、M、Q、H;版本信息:即二維碼的規格
  • 教你Python製作簡單的二維碼,保證一學就會
    ,另外一種使用import引入先在最原始的IDE上from MyQR import myqrmyqr.run('1234567')在看下源碼位置參數 單詞:STR可選參數 版本:int,從1到40級別:str,僅限其中一個(l'、'm'、'q'、'h')picutre:str,圖像的文件名
  • 藝術|二維碼-QR Code
    QR 碼系統由於其快速的可讀性和更大的存儲容量與標準 UPC 條碼相比, 在汽車工業之外變得很流行。應用程式包括產品跟蹤、項目標識、時間跟蹤、文檔管理和一般營銷。Structure of a QR code, highlighting functional elements二維碼的結構, 突出功能元素
  • 2021年最新免費網址二維碼生成工具資源分享
    現在很多大網站都有這樣的一個功能,使用手機掃描一下網頁上的二維碼便可快速在手機上訪問網站。二維碼API接口是最簡單、最便捷的免費網址二維碼生成工具。站長網誌在2016年的時候就分享過一批免費生成網址二維碼API接口資源,五年後的今天去看了一下發現沒有一個可以用的了,網際網路真是大浪淘沙啊。
  • 程式設計師的樂趣,生成自定義二維碼,5行Python代碼就搞定
    隨著網際網路和智能行動裝置不斷普及,二維碼(Quick Response code)已經成為世界上應用最為廣泛的信息載體之一。生成二維碼的工具也層出不窮,但多數需要在線完成,並且生成的圖案也千篇一律,過於單調。那麼有沒有辦法實現自定義生成二維碼呢?
  • 中年大叔學編程-用PyQt做一個簡單的二維碼生成器
    算了,我們還是繼續學習吧 前面簡單地嘗試了一下PyQt,這裡我們就結合PyQt來給之前生成二維碼的腳本做個可視化的界面。首先,打開designer,新建一個窗口並保存為qrcodeui.ui然後拖拽兩個GroupBox並分別將其title屬性改為二維碼參數和二維碼展示我們在二維碼參數的GroupBox分別拖拽一個label、一個text和兩個button,在二維碼展示的GroupBox中拖拽一個label用於展示二維碼
  • 分享幾個在線生成網址二維碼的API接口
    都是採用http協議接口,無需下載安裝什麼軟體,可簡單方便地引用,這才是最簡單、最便捷的免費網址二維碼生成工具。        1.http://pan.baidu.com/share/qrcode?
  • 集合啦動物森友會QR二維碼碼掃描與導入衣服教程
    集合啦動物森友會QR二維碼碼掃描與導入衣服教程 1. 在Android或IOS設備上下載 Nintendo Switch Online app。 IOS需要玩家使用非國區帳號,在商店搜索Nintendo Switch Online app即可。
  • Python入門項目,二維碼生成器,值得學習!
    這張圖片是已經安裝過的情況安裝完成後使用Python中的IDLE編輯器進行編輯用編輯器新建文件,後綴名為xxx.py文件中導入模塊from MyQR import myqr在myqr.run()方法中寫入參數代碼
  • 二維碼生成器
    應用類型: 1.辦公,商務,娛樂此應用既可以作為辦公商務用途,為商家或者微商生成包含網址的二維碼,又可以給個人作為娛樂分享到朋友圈裡面; 功能: 1.可以在文本框中輸入文字和網址然後生成二維碼保存起來
  • QR Blaster:多彩又個性的二維碼生成器
    QR碼應用範圍更廣泛,製作步驟更簡單。方便又好用的工具多多益善!打開網站無需註冊,只需4個步驟就可以輕鬆搞定QR碼製作。首先從左側列表中選擇需要生成QR碼的內容,目前提供網站網址,電子郵件地址,電話號碼,SMS消息,iTunes連結,YouTube視頻連結,Google Maps Location或僅僅是純文本等等供你選擇。
  • QRBTF - 製作漂亮有趣二維碼的免費開源在線工具
    這是一個手機和電腦通用在線應用,用來生成各種設計感強、好玩有趣的二維碼。介紹無論是線下商家、自媒體運營者、策展人還是紙媒編輯,二維碼都是轉化最重要的入口。而標準二維碼形式單一、對比濃重,常常在設計作品中拉低審美,這讓廣大追求極致的設計師不厭其煩。今天給大家推薦的工具就可以用來生成非常個性、充滿設計感的二維碼!
  • QR CODE二維碼生成控制項
    QR CODE二維碼生成控制項是編程控制項頻道下深受用戶喜愛的軟體,太平洋下載中心提供QR CODE二維碼生成控制項官方下載。
  • 新東方:"二維碼"、"掃碼關注"用英語怎麼說?
    「二維碼」和「掃碼關注」可能現在大家天天都會聽到,尤其是走在大街上會有推廣某種產品的人說「掃碼關注,免費送耳機」等。如果想真正學好英語,凡是我們經常聽到的,說到的,看到的,想到的,都值得思考如何用準確的英語表達出來。今天我們就來看一下「二維碼」和「掃碼關注」對應的英語。