我的编程空间,编程开发者的网络收藏夹
学习永远不晚

基于Python怎么编写一个二维码生成器

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

基于Python怎么编写一个二维码生成器

这篇“基于Python怎么编写一个二维码生成器”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于Python怎么编写一个二维码生成器”文章吧。

1、安装第三方库

win+R,输入cmd,进入系统管理员界面,安装第三方库

pip install qrcodepip install pillow  #PIL的派生分支,python3以上PIL的替代库

注:PIL是python重要的图像库,在给二维码加图片时需要用到它,但安装时出现:ERROR: Could not find a version that satisfies the requirement PIL (from versions: none)错误。原来是python3以上该库就用其他的库(pillow)替代了

基于Python怎么编写一个二维码生成器

2、QRCode参数解释

version:值为1~40的整数,控制二维码的大小(最小值是1,是个12×12的矩阵)。如果想让程序自动确定,将值设置为 None,并使用 fit 参数即可。error_correction:指定二维码的容错系数,分别有以下4个系数:

  • ERROR_CORRECT_L: 7%的字码可被容错

  • ERROR_CORRECT_M: 15%的字码可被容错

  • ERROR_CORRECT_Q: 25%的字码可被容错

  • ERROR_CORRECT_H: 30%的字码可被容错

box_size:控制二维码中每个小格子包含的像素数。border:控制边框(二维码与图片边界的距离)包含的格子数(默认为4,是相关标准规定的最小值)

3、自定义二维码生成器

生成一个窗口,可以在输入框中自定义二维码的相关信息,包括想输入的文本(可以是文字或者网址),填充颜色以及背景颜色。代码如下:

if __name__ == '__main__':    window = tk.Tk()    window.title('二维码生成器')    window.geometry('900x600')    label_url = tk.Label(window, text="输入文本:")    label_url.place(x=50, y=40)     Entry_input_url = tk.Entry()    Entry_input_url.place(x=120, y=40)     label_fill_color = tk.Label(window, text="填充颜色:")    label_fill_color.place(x=50, y=80)     Entry_input_fill_color = tk.Entry()    Entry_input_fill_color.place(x=120, y=80)     label_fill_color = tk.Label(window, text="背景颜色:")    label_fill_color.place(x=50, y=120)     Entry_input_back_color = tk.Entry()    Entry_input_back_color.place(x=120, y=120)     button = tk.Button(window, text='开始生成', command=create_code)    button.place(x=140, y=160)     window.mainloop()

结果如下:

基于Python怎么编写一个二维码生成器

4、给二维码加图片

# 给二维码加图片    # 把颜色模式转换为RGBA,它表示带透明度掩模的真彩色    img = img.convert("RGBA")    # 从文件里加载二维码中心logo图片,用Image函数的open方法    icon = Image.open("2.jpg")    # 得出二维码的宽高    img_w, img_h = img.size    factor = 4    # 通过二维码宽高计算出logo图片宽和高的最大限度    size_w = int(img_w / factor)    size_h = int(img_h / factor)    # 获取logo的宽和高    icon_w, icon_h = icon.size    # 比较logo宽高和最大限度宽高,如果超过最大限度就将logo尺寸调整到最大限度    if icon_w > size_w:        icon_w = size_w    if icon_h > size_h:        icon_h = size_h    icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)    # 根据logo和图片的长宽确定logo的位置    w = int((img_w - icon_w) / 2)    h = int((img_h - icon_h) / 2)    icon = icon.convert("RGBA")    # 将logo图片粘贴到二维码的指定位置    img.paste(icon, (w, h), icon)

5、全部代码

window.mainloop()

import qrcodeimport tkinter as tkfrom PIL import Image  def create_code():    content = Entry_input_url.get()    fill_color = Entry_input_fill_color.get()    back_color = Entry_input_back_color.get()    qr = qrcode.QRCode(        version=2,  # 二维码的边长        # ERROR_CORRECT_H: 30%的字码可被容错,因为插入了图片,所以增加容错率        error_correction=qrcode.constants.ERROR_CORRECT_H,        box_size=6,        border=2,    )    qr.make(fit=True)    qr.add_data(content)    img = qr.make_image(fill_color=fill_color, back_color=back_color)    # 给二维码加图片    # 把颜色模式转换为RGBA,它表示带透明度掩模的真彩色    img = img.convert("RGBA")    # 从文件里加载二维码中心logo图片,用Image函数的open方法    icon = Image.open("2.jpg")    # 得出二维码的宽高    img_w, img_h = img.size    factor = 4    # 通过二维码宽高计算出logo图片宽和高的最大限度    size_w = int(img_w / factor)    size_h = int(img_h / factor)    # 获取logo的宽和高    icon_w, icon_h = icon.size    # 比较logo宽高和最大限度宽高,如果超过最大限度就将logo尺寸调整到最大限度    if icon_w > size_w:        icon_w = size_w    if icon_h > size_h:        icon_h = size_h    icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)    # 根据logo和图片的长宽确定logo的位置    w = int((img_w - icon_w) / 2)    h = int((img_h - icon_h) / 2)    icon = icon.convert("RGBA")    # 将logo图片粘贴到二维码的指定位置    img.paste(icon, (w, h), icon)     # 保存二维码    img.save("qr.png")    photo = tk.PhotoImage(file="qr.png")    Label_img = tk.Label(window, image=photo)    Label_img.place(x=300, y=300)  if __name__ == '__main__':    window = tk.Tk()    window.title('二维码生成器')    window.geometry('900x600')    label_url = tk.Label(window, text="输入文本:")    label_url.place(x=50, y=40)     Entry_input_url = tk.Entry()    Entry_input_url.place(x=120, y=40)     label_fill_color = tk.Label(window, text="填充颜色:")    label_fill_color.place(x=50, y=80)     Entry_input_fill_color = tk.Entry()    Entry_input_fill_color.place(x=120, y=80)     label_fill_color = tk.Label(window, text="背景颜色:")    label_fill_color.place(x=50, y=120)     Entry_input_back_color = tk.Entry()    Entry_input_back_color.place(x=120, y=120)     button = tk.Button(window, text='开始生成', command=create_code)    button.place(x=140, y=160)

以上就是关于“基于Python怎么编写一个二维码生成器”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

基于Python怎么编写一个二维码生成器

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

基于Python怎么编写一个二维码生成器

这篇“基于Python怎么编写一个二维码生成器”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于Python怎么编写一个二维
2023-07-02

基于C++编写一个文章生成器

这篇文章主要为大家介绍一个有趣的小程序,就是利用C++编写一个文章生成器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
2023-03-19

基于C++如何编写一个文章生成器

这篇“基于C++如何编写一个文章生成器”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于C++如何编写一个文章生成器”文章吧
2023-07-05

使用Python怎么生成一个二维码并解析

这篇文章给大家介绍使用Python怎么生成一个二维码并解析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。生成二维码生成二维码的话,python有两个第三方模块:qrcode和MyQR可以帮我我们生成二维码,下面来看一下
2023-06-08

基于JS怎么实现二维码名片生成

这篇文章主要介绍“基于JS怎么实现二维码名片生成”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于JS怎么实现二维码名片生成”文章能帮助大家解决问题。演示技术栈这里用到了一个二维码生成库qrcode
2023-07-02

基于Python怎么编写一个点名器

这篇文章主要介绍“基于Python怎么编写一个点名器”,在日常操作中,相信很多人在基于Python怎么编写一个点名器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”基于Python怎么编写一个点名器”的疑惑有所
2023-07-02

基于Python怎么编写一个语音合成系统

这篇文章主要介绍了基于Python怎么编写一个语音合成系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于Python怎么编写一个语音合成系统文章都会有所收获,下面我们一起来看看吧。背景一直对语音合成系统比较
2023-06-29

利用Android怎么实现一个二维码生成功能

利用Android怎么实现一个二维码生成功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.在project的build.gradle添加如下代码:allpr
2023-05-31

基于C++怎么编写一个Json解析器

这篇文章主要介绍了基于C++怎么编写一个Json解析器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于C++怎么编写一个Json解析器文章都会有所收获,下面我们一起来看看吧。代码JsonSerialize.h
2023-07-05

怎么利用Python编写一个藏头诗在线生成器

这篇文章主要介绍了怎么利用Python编写一个藏头诗在线生成器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么利用Python编写一个藏头诗在线生成器文章都会有所收获,下面我们一起来看看吧。一、藏头诗(“小浪
2023-06-30

基于Python怎么编写一个刷题练习系统

这篇“基于Python怎么编写一个刷题练习系统”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于Python怎么编写一个刷题
2023-07-05

基于Python怎么编写一个微博抽奖小程序

本篇内容主要讲解“基于Python怎么编写一个微博抽奖小程序”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“基于Python怎么编写一个微博抽奖小程序”吧!开发工具Python版本:3.7.8相关
2023-06-30

基于C++怎么编写一个简单的服务器

这篇文章主要讲解了“基于C++怎么编写一个简单的服务器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于C++怎么编写一个简单的服务器”吧!先写个简易的controller基类继承反射基类,
2023-07-05

基于Python怎么编写一个监控CPU的应用系统

这篇“基于Python怎么编写一个监控CPU的应用系统”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于Python怎么编写
2023-07-02

使用python怎么编写一个自动生成sql语句的脚本

这篇文章主要介绍了使用python怎么编写一个自动生成sql语句的脚本,此处通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考价值,需要的朋友可以参考下:python是什么意思Python是一种跨平台的、具有解释性、编译性、
2023-06-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录