# python 使用 qrcode 库生成二维码 将二维码和背景图结合

  主要使用的两个库 PIL qrcode 怎么安装就不在这边说了

qc = qrcode.QRCode(
	version=1,
	error_correction=qrcode.constants.ERROR_CORRECT_L,
	box_size=5,
	border=0
)

# version 表示生成二维码的尺寸大小,取值范围是 1 至 40,最小尺寸 1 会生成 21 * 21 的二维码,version 每增加 1,生成的二维码就会添加 4 尺寸,例如 version 是 2,则生成 25 * 25 的二维码

# error_correction 指定二维码的容错系数,分别有以下4个系数:
# ERROR_CORRECT_L: 7%的字码可被容错
# ERROR_CORRECT_M: 15%的字码可被容错
# ERROR_CORRECT_Q: 25%的字码可被容错
# ERROR_CORRECT_H: 30%的字码可被容错

# box_size 表示二维码里每个格子的像素大小

# border 表示边框的格子厚度是多少(默认是4)

qr.add_data(url) # 添加数据
qr.make(fit=True) # 填充数据
logo = qr.make_image() # 创建二维码(返回im类型的图片对象)

icon = Image.open("icon.jpg")

logo.paste(icon, (100, 100), mask=None) # 坐标随便写下 具体的自己去计算

plt.imshow(img)
plt.show() # 终端显示图片

logo.save('xxx') # 保存

# window.open 在 safari 中被拦截

safariwindow.loaction.href还是可以用的但是当前页面刷新掉了,不是想要的结果。 这个动作通常都是访问 ajax 异步去调用打开新窗口所以我们改变下方法

function sysc () {
	let tep = window.open(); // 先打开个空窗口
	$.ajax({
        type: '',
        url: '',
        data: '',
        ......
        success(d) => {
            tep.location.href = d.url; // 然后回调href url
        }
    });
}

  拦截原因百度了下:大部分现代的浏览器(Chrome/Firefox/IE 10+/Safari)都默认开启了阻止弹出窗口的策略,原因是 window.open 被广告商滥用,严重影响用户的使用。这个阻止弹出窗口的操作,并不是直接封杀 window.open(),而是会根据用户的行为来判断这次 window.open()是否属于流氓操作。