<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>

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

          共 5171字,需瀏覽 11分鐘

           ·

          2021-01-13 10:09



          點(diǎn)擊上方藍(lán)字關(guān)注我們





          點(diǎn)擊上方“印象python”,選擇“星標(biāo)”公眾號(hào)
          重磅干貨,第一時(shí)間送達(dá)!
          來源: 夏悠然然
          https://blog.csdn.net/qq_42730750/article/details/108877378

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

          1. 二維碼

          二維碼( 2?Dimensional Barcode),又稱二維條形碼。它是用某種特定的幾何圖形按一定規(guī)律在平面(二維方向上)分布的黑白相間的圖形來記錄數(shù)據(jù)符號(hào)信息的;在代碼編制上巧妙地利用構(gòu)成計(jì)算機(jī)內(nèi)部邏輯基礎(chǔ)的“0”、“1”比特流的概念,使用若干個(gè)與二進(jìn)制相對(duì)應(yīng)的幾何形體來表示文字?jǐn)?shù)值信息,通過圖像輸入設(shè)備或光電掃描設(shè)備自動(dòng)識(shí)讀以實(shí)現(xiàn)信息自動(dòng)處理。
          二維碼有其特定的字符集,每個(gè)字符占有一定的寬度,每種碼具有一定的校驗(yàn)功能,同時(shí)還具有對(duì)不同行的信息自動(dòng)識(shí)別功能、及處理圖形旋轉(zhuǎn)變化等特點(diǎn)。
          二維條形碼是在二維空間水平和豎直方向存儲(chǔ)信息的條形碼。它的優(yōu)點(diǎn)是信息容量大,譯碼可靠性高,糾錯(cuò)能力強(qiáng),制作成本低,保密與防偽性能好。
          目前,世界上應(yīng)用最多的二維條碼符號(hào)有Aztec Code、PDF147、QR Code等。

          常見的二維碼為QR CodeCode,QR全稱是Quick Response,是一個(gè)近幾年來移動(dòng)設(shè)備上超流行的一種編碼方式。它的結(jié)構(gòu)如下:
          QR Code屬于矩陣式二維條碼,又稱棋盤式二維條碼。它是在一個(gè)矩形空間通過黑、白像素在矩陣中的不同分布進(jìn)行編碼。在矩陣相應(yīng)元素位置上,用點(diǎn)(方點(diǎn)、圓點(diǎn)或其他形狀)的出現(xiàn)表示二進(jìn)制“1”,點(diǎn)的不出現(xiàn)表示二進(jìn)制的“0”,點(diǎn)的排列組合確定了矩陣式二維條碼所代表的意義。主要有以下特點(diǎn):
          1. 符號(hào)規(guī)格從版本1(21×21)到版本40(177×177),每提高一個(gè)版本,每邊增加4個(gè)碼元(即指構(gòu)成QR碼的方形黑白點(diǎn));
          2. 信息容量大:能存儲(chǔ)7089個(gè)數(shù)字字符或4296個(gè)字母字符或2953個(gè)8位字節(jié)字符或1817漢字字符;
          3. 糾錯(cuò)能力強(qiáng):即使部分編碼變臟或破損,也可以恢復(fù)數(shù)據(jù)。L級(jí)約可糾錯(cuò)7%的數(shù)據(jù)碼字,M級(jí)約可糾錯(cuò)15%的數(shù)據(jù)碼字,Q級(jí)約可糾錯(cuò)25%的數(shù)據(jù)碼字,H級(jí)約可糾錯(cuò)30%的數(shù)據(jù)碼字;
          4. 可以從任意方向讀取:QR碼可以從360°任一方向均可快速讀取。通過QR碼中的三處定位圖案,可以幫助QR碼不受背景樣式的影響,實(shí)現(xiàn)快速穩(wěn)定的讀取。
          2. MyQR

          MyQR可以生成常見的二維碼、藝術(shù)二維碼(黑白或彩色), 動(dòng)態(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í)是挺好用的,唯一的缺點(diǎn)就是,不支持中文!!!沒錯(cuò),是不是有點(diǎn)遺憾,它只支持以下字符:
          • 數(shù)字 0 到 9
          • 大小寫的英文字母
          • 常用英文標(biāo)點(diǎn)符號(hà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.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要一致# 計(jì)算公式為out = image1 * (1.0 - alpha) + image2 * alpha# 這里的背景色就是一種干擾了, 如果將二維碼的透明度設(shè)置過高會(huì)識(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() 返回的是一個(gè)PilImage對(duì)象# 可以使用pillow對(duì)它進(jìn)行圖像處理相關(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)

          回復(fù)下方 「關(guān)鍵詞」,獲取優(yōu)質(zhì)資源


          回復(fù)關(guān)鍵詞 「linux」,即可獲取 185 頁 Linux 工具快速教程手冊(cè)和154頁的Linux筆記。


          回復(fù)關(guān)鍵詞 「Python進(jìn)階」,即可獲取 106 頁 Python 進(jìn)階文檔 PDF


          回復(fù)關(guān)鍵詞 「Python面試題」,即可獲取最新 100道 面試題 PDF


          回復(fù)關(guān)鍵詞 「python數(shù)據(jù)分析」,即可獲取47頁python數(shù)據(jù)分析與自然語言處理的 PDF


          回復(fù)關(guān)鍵詞 「python爬蟲」,滿滿五份PPT爬蟲教程和70多個(gè)案例


          回復(fù)關(guān)鍵詞 「Python最強(qiáng)基礎(chǔ)學(xué)習(xí)文檔」,即可獲取 168 頁 Python 最強(qiáng)基礎(chǔ)學(xué)習(xí)文檔 PDF,讓你快速入門Python

          推薦我的微信號(hào)

          來圍觀我的朋友圈,我的經(jīng)驗(yàn)分享,技術(shù)更新,不定期送書,坑位有限,速速掃碼添加!
          備注:開發(fā)方向_昵稱_城市,另送你10本Python電子書。

          點(diǎn)個(gè)在看你最好看

          瀏覽 44
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  日韩激情网 | 激情无码嗯啊一区 | 亚洲AV中文无码 | 天堂AV在线AA | 欧美成人网页 |