返回

用代码解决P图难题,为好基友一键生成微信付款码

后端

当今网络社交发达,微信几乎成为了沟通交流的“标配”,而微信付款码更是随处可见。近日,笔者收到好友求助,希望为他生成微信付款码,颇感有趣,欣然应允。没想到从此开启了“P图达人”之路,接连收到数位好友的类似请求。

恰逢其会,笔者向来酷爱捣鼓代码,遂萌生以代码解决P图难题之念。经过一番探索和尝试,终于编写出了一款功能强大、操作便捷的“微信付款码生成器”。

使用方法:

  1. 准备一张空白图片,用于粘贴付款码。
  2. 复制要生成的付款码内容(通常为纯文本)。
  3. 运行代码生成器,将空白图片和付款码内容传入。
  4. 稍候片刻,即可获得带有付款码的图片。

代码实现:

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图流程,提高了效率,为广大用户提供了便捷的解决方案。未来,笔者将继续探索代码的更多可能性,致力于为用户带来更实用、更有趣的工具和服务。