自由调整边框像素值、二维码颜色等内容,设置二维码内容为
https://github.com/# 创建一个QRCode对象
qr = qrcode.QRCode(version=1, box_size=10, border=4)
# 设置数据
data = "https://github.com/"
qr.add_data(data)
# 编译并生成二维码图像
qr.make(fit=True)
img = qr.make_image(fill_color="red", back_color="white")
# 修改边框像素值
border_pixels = 15
img_with_border = img.crop(
(0, 0, img.size[0], img.size[1])).resize(
# border_pixels 是一个代表边框像素数的变量。
(img.size[0] + border_pixels * 4,
img.size[1] + border_pixels * 6)
).convert('RGB')
# 修改二维码颜色
# 转换为 RGBA 模式。
img_with_border = img_with_border.convert("RGBA")
data = img_with_border.getdata()
new_data = []
for item in data:
#判断该像素点的颜色是否为黑色。如果是黑色,就将其修改为蓝色。
#这里的RGB值(0, 0, 255)表示蓝色。在将黑色修改为蓝色时,
#还保留了原有的透明度值。
if item[0] == 0 and item[1] == 0 and item[2] == 0:
# 将黑色修改为蓝色
# item代表一个像素点的颜色值,
#是一个四元组(R, G, B, A),其中A代表该像素点的透明度值。
# 分别是红色(R)、绿色(G)、蓝色(B)和透明度(A)。
#因此,item[3]表示获取该像素点颜色值的第4个分量,
#即透明度(A)的值。
new_data.append((0, 0, 255, item[3]))
else:
new_data.append(item)
#调用putdata()方法,将修改后的像素序列应用到二维码图像中
img_with_border.putdata(new_data)
# 保存二维码图像
img_with_border.save("demo2.png")
- crop() 方法接受一个元组作为参数,包含四个整数值,分别表示左上角和右下角的坐标,即 (left, upper, right, lower)。
- size 属性,它是一个包含两个元素的元组,第一个元素表示图像的宽度,第二个元素表示图像的高度 。
- resize() 方法也接受一个元组作为参数,包含两个整数值,分别表示缩放后的宽度和高度。