Python3批量生成带logo的二维码方法

yipeiwu_com7年前Python基础

最近有个需求:批量生成带Logo的二维码

生成二维码比较简单,网上的资源也比较多,不赘述了。自己研究了一下加了logo并且美化了一下(网上的资源直接加Logo特别丑!!!忍不了!!!),直接上代码:

def create_qrcode(url, filename):
  qr = qrcode.QRCode(
    version=1,
    #设置容错率为最高
    error_correction=qrcode.ERROR_CORRECT_H,
    box_size=10,
    border=4,
  )
  qr.add_data(url)
  qr.make(fit=True)
 
  img = qr.make_image()
  #设置二维码为彩色
  img = img.convert("RGBA")
  icon = Image.open('/Users/Jason/Desktop/qrcode/logo.png')
  w, h = img.size
  factor = 4
  size_w = int(w / factor)
  size_h = int(h / factor)
  icon_w, icon_h = icon.size
  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)
  w = int((w - icon_w) / 2)
  h = int((h - icon_h) / 2)
  icon = icon.convert("RGBA")
  newimg = Image.new("RGBA", (icon_w + 8, icon_h + 8), (255, 255, 255))
  img.paste(newimg, (w-4, h-4), newimg)
 
  img.paste(icon, (w, h), icon)
  img.save('/Users/Jason/Desktop/qrcode/' + filename + '.png', quality=100)

以上这篇Python3批量生成带logo的二维码方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

浅谈python中真正关闭socket的方法

close方法可以释放一个连接的资源,但是不是立即释放,如果想立即释放,那么在close之前使用shutdown方法 shut_rd() -------关闭接受消息通道 shut_wr(...

python利用thrift服务读取hbase数据的方法

因工作需要用python通过hbase的thrift服务读取Hbase表数据,发现公司的测试环境还不支持,于是自己动手准备环境,在此我将在安装步骤尽可能描述清楚,旨在给第一次动手安装的朋...

python实现列表中最大最小值输出的示例

如下所示: def findMinAndMax(L): maxL = None minL = None if L: maxL = L[0] minL =...

Python简单遍历字典及删除元素的方法

本文实例讲述了Python简单遍历字典及删除元素的方法。分享给大家供大家参考,具体如下: 这种方式是一定有问题的: d = {'a':1, 'b':2, 'c':3} for key...

python多维数组切片方法

1、数组a第0个元素(二维数组)下的所有子元素(一维数组)的第一列 import numpy as np b=np.arange(24) a=b.reshape(2,3,4) pri...