python二维码_Python 二维码制作

Python 二维码制作

先介绍python 二维码制作的第三方库

QRCode 、MyQR

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

importqrcode

img= qrcode.make('hello qrcode !')

img.save('test.png')

安装导入QRCode

pip install qrcode

QRCode 多种自定义方法

mport qrcode

text= input("输入文字或URL:") #设置URL必须添加http://

img =qrcode.make(text)

img.save()#保存图片至本地目录,可以设定路径

img.show()

生成添加logo的二维码

defgetQRcode(strs, name):

qr=qrcode.QRCode(

version=1,

error_correction=qrcode.constants.ERROR_CORRECT_L,

box_size=10,

border=2,

)#添加数据

qr.add_data(strs)#填充数据

qr.make(fit=True)#生成图片

img = qr.make_image(fill_color="blue", back_color="white")

img= img.convert("RGBA") #RGBA

#添加logo

icon = Image.open("321.png")#获取图片的宽高

img_w, img_h =img.size

factor= 6size_w= int(img_w /factor)

size_h= int(img_h /factor)

icon_w, icon_h=icon.sizeif icon_w >size_w:

icon_w=size_wif icon_h >size_h:

icon_h=size_h#重新设置logo的尺寸

icon =icon.resize((icon_w, icon_h), Image.ANTIALIAS)print(icon)

w= int((img_w - icon_w) / 2)

h= int((img_h - icon_h) / 2)

img.paste(icon, (w, h), icon)#显示图片

plt.imshow(img)

plt.show()

img.save(name)returnimgif __name__ == '__main__':

getQRcode("https://music.163.com/song?id=36990266&userid=112961323", '01.png')

执行代码 程序报错

Traceback (most recent call last):

File"/Users/yyj/HelloBike/Bi_Test/demo/py_qrcode.py", line 96, in getQRcode("https://music.163.com/song?id=36990266&userid=112961323", '01.png')

File"/Users/yyj/HelloBike/Bi_Test/demo/py_qrcode.py", line 80, ingetQRcode

img.paste(icon, (w, h), icon)

File"/Users/yyj/anaconda3/envs/Adil/lib/python3.7/site-packages/PIL/Image.py", line 1470, inpaste

self.im.paste(im, box, mask.im)

ValueError: bad transparency mask

问题分析:

#添加logo

icon = Image.open("321.png")

因为我使用的图片格式 第一次使用了 jpg 后来我自己修改后缀为321.png导致,使用真正的png 图即可。

原图如右

1213900-20190619200455930-228897870.png

结果如右

1213900-20190619200544498-836310195.png

MyQR 生成动态二维码

defgakki_code():

version, level, qr_name=myqr.run(

words="http://labfile.oss.aliyuncs.com/courses/1126/Sources.zip", #可以是字符串,也可以是网址(前面要加http(s)://)

version=1, #设置容错率为最高

level='H', #控制纠错水平,范围是L、M、Q、H,从左到右依次升高

picture="gakki.gif", #将二维码和图片合成

colorized=True, #彩色二维码

contrast=1.0, #用以调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0

brightness=1.0, #用来调节图片的亮度,其余用法和取值同上

save_name="gakki_code.gif", #保存文件的名字,格式可以是jpg,png,bmp,gif

save_dir=os.getcwd() #控制位置

)

下面我们来详细的讲解一下 myqr.run() 函数里面的参数

1213900-20190619172046407-1921963962.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值