返回
用代码解决P图难题,为好基友一键生成微信付款码
后端
2024-01-11 17:37:42
当今网络社交发达,微信几乎成为了沟通交流的“标配”,而微信付款码更是随处可见。近日,笔者收到好友求助,希望为他生成微信付款码,颇感有趣,欣然应允。没想到从此开启了“P图达人”之路,接连收到数位好友的类似请求。
恰逢其会,笔者向来酷爱捣鼓代码,遂萌生以代码解决P图难题之念。经过一番探索和尝试,终于编写出了一款功能强大、操作便捷的“微信付款码生成器”。
使用方法:
- 准备一张空白图片,用于粘贴付款码。
- 复制要生成的付款码内容(通常为纯文本)。
- 运行代码生成器,将空白图片和付款码内容传入。
- 稍候片刻,即可获得带有付款码的图片。
代码实现:
import cv2
import numpy as np
def generate_qrcode(content):
"""生成二维码图像"""
qr = cv2.QRCode(version=1, error_correction=cv2.QRCode_ERROR_CORRECT_L, box_size=10)
qr.add_data(content)
qr.make(fit=True)
img = qr.get_matrix()
return img
def add_logo_to_qrcode(img, logo_path):
"""给二维码图像添加logo"""
logo = cv2.imread(logo_path, cv2.IMREAD_UNCHANGED)
logo = cv2.resize(logo, (int(img.shape[0]/5), int(img.shape[1]/5)))
logo_h, logo_w, _ = logo.shape
for i in range(logo_h):
for j in range(logo_w):
if logo[i, j, 3] != 0:
img[i+int(img.shape[0]/10), j+int(img.shape[1]/10), :] = logo[i, j, :]
return img
def save_image(img, path):
"""保存图像"""
cv2.imwrite(path, img)
if __name__ == "__main__":
# 设置要生成的付款码内容
content = "微信付款码内容"
# 设置空白图片路径
blank_image_path = "blank.png"
# 设置logo图片路径
logo_path = "logo.png"
# 生成二维码图像
qrcode_img = generate_qrcode(content)
# 给二维码图像添加logo
qrcode_with_logo_img = add_logo_to_qrcode(qrcode_img, logo_path)
# 合并付款码和空白图片
blank_img = cv2.imread(blank_image_path)
blank_img[int(blank_img.shape[0]/3):int(blank_img.shape[0]/3*2), int(blank_img.shape[1]/3):int(blank_img.shape[1]/3*2)] = qrcode_with_logo_img
# 保存最终图片
save_image(blank_img, "final.png")
效果展示:
![生成后的微信付款码图片]
结语:
此款“微信付款码生成器”以代码为基石,不仅解决了朋友们的P图需求,更体现了代码的强大之处。它简化了P图流程,提高了效率,为广大用户提供了便捷的解决方案。未来,笔者将继续探索代码的更多可能性,致力于为用户带来更实用、更有趣的工具和服务。