<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          有趣的二維碼:用 Python 制作二維碼

          共 3218字,需瀏覽 7分鐘

           ·

          2020-12-07 01:42

          來源:?夏悠然然

          https://blog.csdn.net/qq_42730750/article/details/108877378


          【導(dǎo)語】:現(xiàn)在都強調(diào)個性,那么怎么動手制作自己的個性化二維碼呢?本文就跟大家一起探討制作二維碼的方法。


          1. 二維碼

          二維碼(?2?Dimensional Barcode),又稱二維條形碼。它是用某種特定的幾何圖形按一定規(guī)律在平面(二維方向上)分布的黑白相間的圖形來記錄數(shù)據(jù)符號信息的;在代碼編制上巧妙地利用構(gòu)成計算機內(nèi)部邏輯基礎(chǔ)的“0”、“1”比特流的概念,使用若干個與二進制相對應(yīng)的幾何形體來表示文字數(shù)值信息,通過圖像輸入設(shè)備或光電掃描設(shè)備自動識讀以實現(xiàn)信息自動處理。

          二維碼有其特定的字符集,每個字符占有一定的寬度,每種碼具有一定的校驗功能,同時還具有對不同行的信息自動識別功能、及處理圖形旋轉(zhuǎn)變化等特點。

          二維條形碼是在二維空間水平和豎直方向存儲信息的條形碼。它的優(yōu)點是信息容量大,譯碼可靠性高,糾錯能力強,制作成本低,保密與防偽性能好。

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


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

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

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

          2.?信息容量大:能存儲7089個數(shù)字字符或4296個字母字符或2953個8位字節(jié)字符或1817漢字字符;

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

          4.?可以從任意方向讀取:QR碼可以從360°任一方向均可快速讀取。通過QR碼中的三處定位圖案,可以幫助QR碼不受背景樣式的影響,實現(xiàn)快速穩(wěn)定的讀取。

          2. MyQR


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


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

          • 數(shù)字 0 到 9

          • 大小寫的英文字母

          • 常用英文標(biāo)點符號和空格

          3. qrcode

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


          ??pip?install?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        # 這里的背景色就是一種干擾了, 如果將二維碼的透明度設(shè)置過高會識別不出來        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對它進行圖像處理相關(guān)的操作 # 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)

          推薦閱讀:

          完全整理 | 365篇高質(zhì)技術(shù)文章目錄整理

          算法之美 : 棧和隊列

          主宰這個世界的10大算法

          徹底理解cookie、session、token

          淺談什么是遞歸算法

          專注服務(wù)器后臺技術(shù)棧知識總結(jié)分享

          歡迎關(guān)注交流共同進步

          瀏覽 66
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  伊人网成人综合 | 黄色录像带免费看 | 黄色片网站免费观看完整版 | 黄色视频免费久久 | 国产一级性爱 |