360 Secure SkillHub
360 安全技能中心

QR Code Tool

该 Skill 提供 Python 代码片段,用于把 URL、文本、WiFi 凭据或 vCard 联系人信息生成为 PNG 二维码图片,支持错误纠正等级、颜色样式、批量生成和中心 Logo 叠加,并给出 qrcode[pil] 安装命令。

leonardodpanda
leonardodpanda
热度 85.33
最近更新 2026-05-17 13:14:10
分类:效率依赖:代码执行 / 读写文件应用场景:图像生成 / 自动化脚本 / 模板

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add qr-code-tool
Metadata
name
qr-code-generator
description
Generate QR codes for URLs, text, WiFi credentials, contact cards, and more. Use when creating scannable links for marketing materials, sharing WiFi passwords, generating business cards, or creating quick access to digital content. Supports custom styling, error correction levels, and multiple export formats.

QR Code Generator

Create QR codes for URLs, WiFi, contacts, and more.

When to Use

  • Creating scannable links for print materials
  • Sharing WiFi credentials securely
  • Generating digital business cards
  • Creating quick app download links
  • Sharing locations or maps
  • Event check-in codes

Quick Start

Basic URL QR Code

import qrcode

def generate_qr(data, output_path='qr_code.png'):
    """Generate simple QR code"""
    qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=10,
        border=4,
    )
    qr.add_data(data)
    qr.make(fit=True)
    
    img = qr.make_image(fill_color="black", back_color="white")
    img.save(output_path)
    return output_path

# Usage
generate_qr('https://example.com', 'website_qr.png')

WiFi QR Code

def generate_wifi_qr(ssid, password, security='WPA', output='wifi_qr.png'):
    """
    Generate WiFi connection QR code
    Format: WIFI:S:ssid;T:security;P:password;;
    """
    wifi_string = f"WIFI:S:{ssid};T:{security};P:{password};;"
    return generate_qr(wifi_string, output)

# Usage
generate_wifi_qr('MyHomeNetwork', 'secret123', 'WPA')
# Scan to auto-connect to WiFi

Contact Card (vCard)

def generate_vcard_qr(name, phone, email, output='contact_qr.png'):
    """Generate vCard QR code"""
    vcard = f"""BEGIN:VCARD
VERSION:3.0
FN:{name}
TEL:{phone}
EMAIL:{email}
END:VCARD"""
    return generate_qr(vcard, output)

# Usage
generate_vcard_qr('John Doe', '+1234567890', 'john@example.com')

Styled QR Code

def generate_styled_qr(data, output='styled_qr.png', **kwargs):
    """Generate QR with custom styling"""
    qr = qrcode.QRCode(
        version=kwargs.get('version', 1),
        error_correction=getattr(
            qrcode.constants, 
            f"ERROR_CORRECT_{kwargs.get('error_correction', 'M')}"
        ),
        box_size=kwargs.get('box_size', 10),
        border=kwargs.get('border', 4),
    )
    qr.add_data(data)
    qr.make(fit=True)
    
    # Custom colors
    fill_color = kwargs.get('fill_color', 'black')
    back_color = kwargs.get('back_color', 'white')
    
    img = qr.make_image(fill_color=fill_color, back_color=back_color)
    img.save(output)
    return output

# Styled examples
generate_styled_qr('https://mysite.com', 'blue_qr.png', 
                   fill_color='blue', back_color='lightblue')

Error Correction Levels

Level Correction Use Case
L ~7% Clean environments
M ~15% Default, good balance
Q ~25% Dirty/damaged possible
H ~30% Logos/overlays on QR

Advanced Features

Batch Generate

def batch_generate(urls, output_dir='./qr_codes'):
    """Generate QR codes for multiple URLs"""
    import os
    os.makedirs(output_dir, exist_ok=True)
    
    generated = []
    for i, url in enumerate(urls, 1):
        output = f"{output_dir}/qr_{i:03d}.png"
        generate_qr(url, output)
        generated.append(output)
    
    return generated

# Usage
urls = [
    'https://product1.com',
    'https://product2.com',
    'https://product3.com'
]
batch_generate(urls)

Add Logo to Center

from PIL import Image

def add_logo_to_qr(qr_path, logo_path, output_path):
    """Add logo to center of QR code"""
    qr_img = Image.open(qr_path)
    logo_img = Image.open(logo_path)
    
    # Resize logo to fit in center
    box_size = min(qr_img.size) // 5
    logo_img = logo_img.resize((box_size, box_size))
    
    # Calculate position
    pos = ((qr_img.size[0] - box_size) // 2,
           (qr_img.size[1] - box_size) // 2)
    
    # Paste logo
    qr_img.paste(logo_img, pos, logo_img if logo_img.mode == 'RGBA' else None)
    qr_img.save(output_path)

Dependencies

pip install qrcode[pil]