亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python如何使用MyQR和qrcode來制作二維碼

發布時間:2021-05-11 09:56:34 來源:億速云 閱讀:160 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關python如何使用MyQR和qrcode來制作二維碼,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

Python的優點有哪些

1、簡單易用,與C/C++、Java、C# 等傳統語言相比,Python對代碼格式的要求沒有那么嚴格;2、Python屬于開源的,所有人都可以看到源代碼,并且可以被移植在許多平臺上使用;3、Python面向對象,能夠支持面向過程編程,也支持面向對象編程;4、Python是一種解釋性語言,Python寫的程序不需要編譯成二進制代碼,可以直接從源代碼運行程序;5、Python功能強大,擁有的模塊眾多,基本能夠實現所有的常見功能。

一、二維碼

??二維碼( 2 ? D i m e n s i o n a l (2-Dimensional(2?Dimensional B a r c o d e ) Barcode)Barcode),又稱二維條形碼。它是用某種特定的幾何圖形按一定規律在平面(二維方向上)分布的黑白相間的圖形來記錄數據符號信息的;在代碼編制上巧妙地利用構成計算機內部邏輯基礎的“0”、“1”比特流的概念,使用若干個與二進制相對應的幾何形體來表示文字數值信息,通過圖象輸入設備或光電掃描設備自動識讀以實現信息自動處理。

??一維條形碼,就是我們日常所說的條形碼( B a r c o d ) (Barcod)(Barcod),常見于食品包裝上。它是將寬度不等的多個黑條和空白,按一定的編碼規則排列,用以表達一組信息的圖形標識符。常見的一維條形碼是由黑條(簡稱條)和白條(簡稱空)排成平行線圖案。條形碼可以標出物品的生產國、制造廠家、商品名稱、生產日期以及圖書分類號、郵件起止地點、類別、日期等信息。
??通常一維條形碼所能表示的字符集不過10個數字、26個英文字母及一些特殊字符,條碼字符集最大所能表示的字符個數為128個ASCII字符,信息量非常有限。

??二維碼有其特定的字符集,每個字符占有一定的寬度,每種碼具有一定的校驗功能,同時還具有對不同行的信息自動識別功能、及處理圖形旋轉變化等特點。
??二維條形碼是在二維空間水平和豎直方向存儲信息的條形碼。它的優點是信息容量大,譯碼可靠性高,糾錯能力強,制作成本低,保密與防偽性能好。

目前,世界上應用最多的二維條碼符號有Aztec Code、PDF147、QR Code等。

python如何使用MyQR和qrcode來制作二維碼

常見的二維碼為QR CodeCode,QR全稱是Quick Response,是一個近幾年來移動設備上超流行的一種編碼方式。它的結構如下:

python如何使用MyQR和qrcode來制作二維碼

QR Code屬于矩陣式二維條碼,又稱棋盤式二維條碼。它是在一個矩形空間通過黑、白像素在矩陣中的不同分布進行編碼。在矩陣相應元素位置上,用點(方點、圓點或其他形狀)的出現表示二進制“1”,點的不出現表示二進制的“0”,點的排列組合確定了矩陣式二維條碼所代表的意義。
主要有以下特點:

  • 符號規格從版本1(21×21)到版本40(177×177),每提高一個版本,每邊增加 4 個碼元(即指構成 QR 碼的方形黑白點);

  • 信息容量大:能存儲 7089 個數字字符或 4296 個字母字符或 2953 個 8 位字節字符或 1817 漢字字符;

  • 糾錯能力強:即使部分編碼變臟或破損,也可以恢復數據。L級約可糾錯 7% 的數據碼字,M級約可糾錯 15% 的數據碼字,Q級約可糾錯25%的數據碼字,H級約可糾錯 30% 的數據碼字;

  • 可以從任意方向讀取:QR碼可以從 360° 任一方向均可快速讀取。通過 QR 碼中的三處定位圖案,可以幫助 QR 碼不受背景樣式的影響,實現快速穩定的讀取。

二、MyQR

MyQR可以生成常見的二維碼、藝術二維碼(黑白或彩色),動態二維碼(黑白或彩色),安裝命令如下:

pip install MyQR -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

python如何使用MyQR和qrcode來制作二維碼

更多詳細內容可以參考官方文檔:https://github.com/sylnsfar/qrcode

代碼如下

if __name__ == '__main__':
    version, level, qr_name = myqr.run(
        words='https://blog.csdn.net/qq_42730750',
        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)

??這是我生成的幾個二維碼:

python如何使用MyQR和qrcode來制作二維碼

python如何使用MyQR和qrcode來制作二維碼

MyQR確實是挺好用的,唯一的缺點就是,不支持中文!!!沒錯,是不是有點遺憾,它只支持以下字符:

  • 數字 0 到 9

  • 大小寫的英文字母

  • 常用英文標點符號和空格

三、qrcode

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

pip install qrcode -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

python如何使用MyQR和qrcode來制作二維碼

官方文檔 Github 網址:https://github.com/lincolnloop/python-qrcode

生成二維碼代碼如下:

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)
        # 縮放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://blog.csdn.net/qq_42730750')
    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如何使用MyQR和qrcode來制作二維碼”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

遂川县| 南通市| 平利县| 岳池县| 鄂托克旗| 万全县| 山西省| 吉林省| 汽车| 富顺县| 泰兴市| 通渭县| 当阳市| 宁安市| 临猗县| 全南县| 绥阳县| 扎囊县| 永清县| 德惠市| 罗源县| 顺昌县| 定日县| 白银市| 利川市| 安阳县| 九龙坡区| 陆川县| 文昌市| 凤冈县| 理塘县| 江油市| 郁南县| 新郑市| 文成县| 肇州县| 商都县| 盐池县| 沐川县| 如东县| 德庆县|