{"skill":{"slug":"qr-code-tool","displayName":"QR Code Tool","summary":"Generate QR codes for URLs, text, WiFi credentials, contact cards, and more. Use when creating scannable links for marketing materials, sharing WiFi password...","description":"---\nname: qr-code-generator\ndescription: 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.\n---\n\n# QR Code Generator\n\nCreate QR codes for URLs, WiFi, contacts, and more.\n\n## When to Use\n\n- Creating scannable links for print materials\n- Sharing WiFi credentials securely\n- Generating digital business cards\n- Creating quick app download links\n- Sharing locations or maps\n- Event check-in codes\n\n## Quick Start\n\n### Basic URL QR Code\n\n```python\nimport qrcode\n\ndef generate_qr(data, output_path='qr_code.png'):\n    \"\"\"Generate simple QR code\"\"\"\n    qr = qrcode.QRCode(\n        version=1,\n        error_correction=qrcode.constants.ERROR_CORRECT_L,\n        box_size=10,\n        border=4,\n    )\n    qr.add_data(data)\n    qr.make(fit=True)\n    \n    img = qr.make_image(fill_color=\"black\", back_color=\"white\")\n    img.save(output_path)\n    return output_path\n\n# Usage\ngenerate_qr('https://example.com', 'website_qr.png')\n```\n\n### WiFi QR Code\n\n```python\ndef generate_wifi_qr(ssid, password, security='WPA', output='wifi_qr.png'):\n    \"\"\"\n    Generate WiFi connection QR code\n    Format: WIFI:S:ssid;T:security;P:password;;\n    \"\"\"\n    wifi_string = f\"WIFI:S:{ssid};T:{security};P:{password};;\"\n    return generate_qr(wifi_string, output)\n\n# Usage\ngenerate_wifi_qr('MyHomeNetwork', 'secret123', 'WPA')\n# Scan to auto-connect to WiFi\n```\n\n### Contact Card (vCard)\n\n```python\ndef generate_vcard_qr(name, phone, email, output='contact_qr.png'):\n    \"\"\"Generate vCard QR code\"\"\"\n    vcard = f\"\"\"BEGIN:VCARD\nVERSION:3.0\nFN:{name}\nTEL:{phone}\nEMAIL:{email}\nEND:VCARD\"\"\"\n    return generate_qr(vcard, output)\n\n# Usage\ngenerate_vcard_qr('John Doe', '+1234567890', 'john@example.com')\n```\n\n### Styled QR Code\n\n```python\ndef generate_styled_qr(data, output='styled_qr.png', **kwargs):\n    \"\"\"Generate QR with custom styling\"\"\"\n    qr = qrcode.QRCode(\n        version=kwargs.get('version', 1),\n        error_correction=getattr(\n            qrcode.constants, \n            f\"ERROR_CORRECT_{kwargs.get('error_correction', 'M')}\"\n        ),\n        box_size=kwargs.get('box_size', 10),\n        border=kwargs.get('border', 4),\n    )\n    qr.add_data(data)\n    qr.make(fit=True)\n    \n    # Custom colors\n    fill_color = kwargs.get('fill_color', 'black')\n    back_color = kwargs.get('back_color', 'white')\n    \n    img = qr.make_image(fill_color=fill_color, back_color=back_color)\n    img.save(output)\n    return output\n\n# Styled examples\ngenerate_styled_qr('https://mysite.com', 'blue_qr.png', \n                   fill_color='blue', back_color='lightblue')\n```\n\n## Error Correction Levels\n\n| Level | Correction | Use Case |\n|-------|-----------|----------|\n| L | ~7% | Clean environments |\n| M | ~15% | Default, good balance |\n| Q | ~25% | Dirty/damaged possible |\n| H | ~30% | Logos/overlays on QR |\n\n## Advanced Features\n\n### Batch Generate\n\n```python\ndef batch_generate(urls, output_dir='./qr_codes'):\n    \"\"\"Generate QR codes for multiple URLs\"\"\"\n    import os\n    os.makedirs(output_dir, exist_ok=True)\n    \n    generated = []\n    for i, url in enumerate(urls, 1):\n        output = f\"{output_dir}/qr_{i:03d}.png\"\n        generate_qr(url, output)\n        generated.append(output)\n    \n    return generated\n\n# Usage\nurls = [\n    'https://product1.com',\n    'https://product2.com',\n    'https://product3.com'\n]\nbatch_generate(urls)\n```\n\n### Add Logo to Center\n\n```python\nfrom PIL import Image\n\ndef add_logo_to_qr(qr_path, logo_path, output_path):\n    \"\"\"Add logo to center of QR code\"\"\"\n    qr_img = Image.open(qr_path)\n    logo_img = Image.open(logo_path)\n    \n    # Resize logo to fit in center\n    box_size = min(qr_img.size) // 5\n    logo_img = logo_img.resize((box_size, box_size))\n    \n    # Calculate position\n    pos = ((qr_img.size[0] - box_size) // 2,\n           (qr_img.size[1] - box_size) // 2)\n    \n    # Paste logo\n    qr_img.paste(logo_img, pos, logo_img if logo_img.mode == 'RGBA' else None)\n    qr_img.save(output_path)\n```\n\n## Dependencies\n\n```bash\npip install qrcode[pil]\n```\n","topics":["Marketing","Business"],"tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":789,"installsAllTime":29,"installsCurrent":1,"stars":0,"versions":1},"createdAt":1772545006290,"updatedAt":1778994850066},"latestVersion":{"version":"1.0.0","createdAt":1772545006290,"changelog":"Initial release","license":null},"metadata":null,"owner":{"handle":"leonardodpanda","userId":"s177dprky1s69vgjk3rvag5yyh884gga","displayName":"LeonardoDpanda","image":"https://avatars.githubusercontent.com/u/51777214?v=4"},"moderation":null}