Skip to content
Back to skills

Generate Custom Qr Code

ASecurity

Generates a QR code from any URL, and optionally overlays a custom image in the center

  • 11 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 10, 2026
developmentpythongobash

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 2 files and shows the line behind each finding

Scanned September 10, 2026

npx -y skills add luokai0/ai-agent-skills-by-luo-kai --skill generate-custom-qr-code --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Generate Custom Qr Code?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Generate Custom Qr Code
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/luokai0-generate-custom-qr-code/badge)](https://www.skillsdirectory.com/skills/luokai0-generate-custom-qr-code)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: generate-custom-qr-code
description: Generates a QR code from any URL, and optionally overlays a custom image in the center
metadata:
  author: hatsunemiku.zo.computer
  category: Community
  display-name: Generate QR code with optional image
  emoji: 📱
---

# Generate QR Code with Optional Image

Generate a QR code from a URL. Optionally overlay a custom logo/image on the center with a white background.

## Parameters

- `url` (string, required): The URL to encode in the QR code
- `image_path` (string, optional): Path to custom image to overlay (PNG, JPG, etc.)
- `output_path` (string, optional): Where to save the QR code. Defaults to `file Images/qr_code.png`
- `overlay_size_percent` (int, optional): Overlay size as percentage of QR code (default: 25)

## Usage Examples

**Basic QR code (no image):**

```markdown
url: https://zo.computer
```

**With custom logo:**

```markdown
url: https://zo.computer
image_path: /home/workspace/Images/logo.png
output_path: /home/workspace/Images/zo_qr_with_logo.png
overlay_size_percent: 25
```

## Implementation

First, ensure dependencies are installed:

```bash
pip install qrcode[pil] pillow -q
```

Then generate the QR code:

```python
import qrcode
from PIL import Image
from pathlib import Path

url = "https://zo.computer"
image_path = None  # Set to image path if using overlay
output_path = "/home/workspace/Images/qr_code.png"
overlay_size_percent = 25

output_path = Path(output_path)
output_path.parent.mkdir(parents=True, exist_ok=True)

# Use HIGH error correction if we're adding an overlay
error_correction = qrcode.constants.ERROR_CORRECT_H if image_path else qrcode.constants.ERROR_CORRECT_L

qr = qrcode.QRCode(
    version=1,
    error_correction=error_correction,
    box_size=10,
    border=4,
)
qr.add_data(url)
qr.make(fit=True)

qr_img = qr.make_image(fill_color="black", back_color="white").convert('RGB')

# If custom image provided, overlay it
if image_path and Path(image_path).exists():
    custom_img = Image.open(image_path).convert('RGBA')
    qr_width, qr_height = qr_img.size

    # Calculate overlay size
    overlay_size = int(qr_width * (overlay_size_percent / 100))
    custom_img = custom_img.resize((overlay_size, overlay_size), Image.Resampling.LANCZOS)

    # Create white background for overlay
    white_bg = Image.new('RGB', (overlay_size, overlay_size), 'white')

    # Paste custom image on white background (handles transparency)
    if custom_img.mode == 'RGBA':
        white_bg.paste(custom_img, (0, 0), custom_img)
    else:
        white_bg.paste(custom_img, (0, 0))

    # Composite onto center of QR code
    offset = (qr_width - overlay_size) // 2
    qr_img.paste(white_bg, (offset, offset))

qr_img.save(output_path)
print(f"QR code saved to {output_path}")
```

Files in this skill

  • DISPLAY.json69 B
  • SKILL.md2.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.