python二维码操作:QRCode和MyQR入门

python是所有编程语言中模块最丰富的

生活中常见的二维码功能在使用python第三方库来生成十分容易


  • 三个大矩形是定位图案,用于标记二维码的大小。这三个定位图案有白边,通过这三个矩形就可以标识一个二维码了。



QRCode    生成这个二维码只用一行


import qrcode

qrcode.make("不睡觉干嘛呢").get_image().show()   #设置URL必须添加http://


安装导入QRCode

pip install qrcode  #方法多,体量小

安装导入MyQR

pip install myqr    #操作简单,功能强大

QRCode 多种自定义方法

import qrcode

text = input("输入文字或URL:")
img =qrcode.make(text)
img.save()                            #保存图片至本地目录,可以设定路径
img.show()    

生成添加logo的二维

from PIL import Image
import qrcode,os

def create_qrcode(url,qrcodename):
    qr = qrcode.QRCode(
        version=1,  # 设置容错率为最高
        error_correction=qrcode.ERROR_CORRECT_H, # 用于控制二维码的错误纠正程度
        box_size=8, # 控制二维码中每个格子的像素数,默认为10
        border=1, # 二维码四周留白,包含的格子数,默认为4
        #image_factory=None,  保存在模块根目录的image文件夹下
        #mask_pattern=None
    )

    qr.add_data(url) # QRCode.add_data(data)函数添加数据
    qr.make(fit=True)  # QRCode.make(fit=True)函数生成图片

    img = qr.make_image()
    img = img.convert("RGBA") # 二维码设为彩色
    logo = Image.open('xx.jpg') # 传gif生成的二维码也是没有动态效果的

    w , h = img.size
    logo_w , logo_h = logo.size
    factor = 4   # 默认logo最大设为图片的四分之一
    s_w = int(w / factor)
    s_h = int(h / factor)
    if logo_w > s_w or logo_h > s_h:
        logo_w = s_w
        logo_h = s_h

    logo = logo.resize((logo_w, logo_h), Image.ANTIALIAS)
    l_w = int((w - logo_w) / 2)
    l_h = int((h - logo_h) / 2)
    logo = logo.convert("RGBA")
    img.paste(logo, (l_w, l_h), logo)
    img.show()
    img.save(os.getcwd()+'/' + qrcodename + '.png', quality=100)


MyQR    生成动态二维码


from MyQR import myqr
import os
myqr.run(
    words='Hello world',         #在命令后输入链接或者句子作为参数,然后在程序的当前目录中产生相应的二维码图片文件,默认命名为” qrcode.png“
    version=1,                   #设置容错率为最高默认边长是取决于你输入的信息的长度和使用的纠错等级;而默认纠错等级是最高级的H
    level='H',                   #控制纠错水平,范围是L、M、Q、H,从左到右依次升高
    picture='WChat.png',         #用来将QR二维码图像与一张同目录下的图片相结合,产生一张黑白图片
    colorized=True,              #可以使产生的图片由黑白(False)变为彩色(True)的
    contrast=1.0,                #用以调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0。
    brightness=1.0,              #用来调节图片的亮度,其余用法和取值与 -con 相同
    save_name='test.png',        #控制文件名,格式可以是 .jpg, .png ,.bmp ,.gif ;
    save_dir=os.getcwd()         #控制位置。
)
Positional parameter
   words: str
Optional parameters
   version: int, from 1 to 40
   level: str, just one of ('L','M','Q','H')
   picutre: str, a filename of a image
   colorized: bool
   constrast: float
   brightness: float
   默认输出文件名是“ qrcode.png ",而默认存储位置是当前目录
   save_name: str, the output filename like 'example.png'
   save_dir: str, the output directory



参考资料

以上内容主要参考官方文档







  • 27
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值