<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 制作炫酷吊炸天的二維碼!

          共 5747字,需瀏覽 12分鐘

           ·

          2021-04-29 21:20

          各種酷炫二維碼的介紹

          當(dāng)今社會,二維碼用的地方越來越多了。你的微信二維碼,微信付款嗎、支付寶付款碼,這基本成了每個(gè)人的必備品了。

          今天這篇文章,就帶著大家制作幾款二維碼,分別是:靜態(tài)二維碼單圖動態(tài)二維碼多圖動態(tài)二維碼

          下面先來看看最終的效果:

          ① 單圖動態(tài)二維碼

          ② 靜態(tài)二維碼


          ③ 多圖動態(tài)二維碼


          自己開發(fā)的二維碼生成器

          這款“二維碼生成器”工具,我已經(jīng)開發(fā)出來。下面給大家簡單介紹一下它的用法。

          首先,打開我個(gè)人開發(fā)的二維碼生成器,如下圖所示。

          接著,輸入二維碼要保存的網(wǎng)址、二維碼保存位置,以及動圖所在位置。

          最后,點(diǎn)擊“生成二維碼”,即可看到最終生成的效果!

          從下圖可以看到,這張動態(tài)二維碼已經(jīng)生成。

          開發(fā)代碼

          這么酷炫的工具是怎么開發(fā)出來的呢?廢話不多說,直接上代碼吧!

          __author__ = 'xiaoxiaoming'

          import PySimpleGUI as sg
          from MyQR import myqr

          sg.change_look_and_feel("LightBlue")
          layout = [
              [sg.Text("請輸入二維碼的網(wǎng)址或英文字符串(不支持中文):")],
              [sg.In(size=(601), key="words")],
              [sg.Text("圖片保存位置(文件名以底圖為準(zhǔn)):")],
              [sg.In(size=(531), key="save_path"), sg.FolderBrowse('游覽', target='save_path')],
              [sg.Text("底圖所在位置(不傳表示不設(shè)置底圖,支持多選會同時(shí)生成多張二維碼):")],
              [sg.In(size=(531), key="bg_filename"), sg.FilesBrowse('游覽', target='bg_filename')],
              [sg.Button('生成二維碼', enable_events=True, key="start")],
              [sg.Text(size=(503), text_color='red', key="out", text='底圖設(shè)置一張gif動圖即可生成動態(tài)二維碼')],
              [sg.Image(key="-IMAGE-")],
          ]
          window = sg.Window("動態(tài)二維碼生成器(小小明個(gè)人開發(fā))", layout)

          def create_qr(words, save_path, picture):
              if picture == "":
                  imgpaths = [None]
              else:
                  imgpaths = picture.split(";")
              save_names = []
              save_path = save_path.rstrip("/").rstrip("\\")
              for idx, imgpath in enumerate(imgpaths, 1):
                  i = imgpath.rfind('/')
                  j = imgpath.rfind('\\')
                  start_p = max(i, j) + 1
                  end_p = imgpath.rfind('.')
                  filename = imgpath[start_p:end_p]
                  save_name = f"{save_path}/{filename}-{idx}.gif"
                  myqr.run(
                      # 該鏈接表示你想要生成二維碼的鏈接。
                      words=words,
                      version=10,  # 容錯(cuò)率
                      level='H',  # 糾錯(cuò)水平,范圍是L、M、Q、H,從左到右依次升高
                      colorized=True,  # False為黑白
                      contrast=1.5,  # 用以調(diào)節(jié)圖片的對比度,1.0 表示原始圖片。
                      brightness=1.0,  # 用來調(diào)節(jié)圖片的亮度。
                      save_name=save_name,  # 存儲的文件名
                      # 背景圖片的路徑,你如果給的是".png/.jpg"等靜態(tài)圖片,最終生成的就是靜態(tài)二維碼!
                      # 背景圖片的路徑,你如果給的是".gif"等動態(tài)圖片,最終只需要保存為".gif",生成的就是動態(tài)二維碼!
                      picture=imgpath
                  )
                  save_names.append(save_name)
              return save_names

          while True:
              event, values = window.read()
              if event == "Exit" or event == sg.WIN_CLOSED:
                  break
              print(event, values)
              if event == 'start':
                  try:
                      save_names = create_qr(values['words'], values['save_path'], values['bg_filename'])
                      window["-IMAGE-"].update(filename=save_names[-1])
                      window["out"].update(f"二維碼圖片已經(jīng)保存到" + ",".join(save_names))
                  except Exception as e:
                      window["out"].update(str(e))

          window.close()

          關(guān)于MyQR:

          https://github.com/sylnsfar/qrcode/blob/master/README-cn.md

          安裝:

          pip install myqr

          打包exe:

          python -m PyInstaller -wF myqr_gui.py -i C:\Users\Think\Pictures\ico\a.ico

          注意:在虛擬環(huán)境下,直接使用pyinstaller打包,最終打包出來的程序無法運(yùn)行,因?yàn)橛行煳创虬晒Γ蒙鲜雒畲虬纯山鉀Q這個(gè)問題。

          給你的微信二維碼,添加自定義背景圖

          猛地一看標(biāo)題,大家可能不太明白這是啥意思,我大致為你說明一下。

          在微信中,我們本身可以保存自己的二維碼,但是一般都是沒有背景樣式的。如果你想將女朋友的照片,與你的個(gè)人二維碼融合起來,應(yīng)該怎么辦呢?下面我來好好給你講述一下。

          首先,我們保存自己的微信二維碼圖片,將該二維碼解碼還原為網(wǎng)址。

          二維碼解碼還原為網(wǎng)址,我使用我十年前開發(fā)的二維碼工具進(jìn)行識別:

          獲取到鏈接節(jié)后,再使用我用python開發(fā)的二維碼生成工具:

          多張動態(tài)二維碼

          選擇多張底圖,批量生成二維碼:

          然后點(diǎn)擊生成二維碼(可能需要多等一會):

          下面是生成的4張對應(yīng)的二維碼圖片:

          然后打開Imagine軟件:


          點(diǎn)擊工具->動畫作坊

          點(diǎn)擊插入幀,選擇圖片并打開:

          拖動好順序后,全選圖片點(diǎn)擊幀屬性:

          我統(tǒng)一設(shè)置為700毫秒,然后確定:

          然后將動畫屬性設(shè)置為循環(huán):

          然后保存即可。

          更多閱讀



          5 分鐘快速上手 pytest 測試框架


          5分鐘掌握 Python 隨機(jī)爬山算法


          5分鐘快速掌握 Adam 優(yōu)化算法

          特別推薦




          點(diǎn)擊下方閱讀原文加入社區(qū)會員

          瀏覽 51
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

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

          手機(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>
                  中文字幕 欧美 日韩 | 国产最新久久 | AA级亚洲电影 | 激情综合六月 | 精品成人无码麻豆 |