把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。
编程
Icon Generator
试用Professional icon and logo generator for apps and websites. Use when user needs to create app icons, favicons, logos, or brand marks. Supports iOS, Android,...
它能做什么
Professional icon and logo generator for apps, websites, and branding.
技能文档
Icon Generator
Professional icon and logo generator for apps, websites, and branding.
Features
- 📱 App Icons: iOS and Android standards
- 🌐 Web Icons: Favicon, OG images
- 🎨 Logo Design: Brand marks, wordmarks
- 📐 Multi-Size: Auto-export all required sizes
- 🎯 Customizable: Colors, shapes, styles
Supported Formats
iOS App Icons
| Size | Scale | Usage |
|---|---|---|
| 1024×1024 | 1x | App Store |
| 180×180 | 3x | iPhone |
| 120×120 | 2x | iPhone |
| 167×167 | 2x | iPad Pro |
| 152×152 | 2x | iPad |
| 80×80 | 2x | iPad Spotlight |
| 58×58 | 2x | iPhone Settings |
| 40×40 | 2x | iPhone Notification |
Android App Icons
| Size | Usage |
|---|---|
| 512×512 | Play Store |
| 192×192 | xxxhdpi |
| 144×144 | xxhdpi |
| 96×96 | xhdpi |
| 72×72 | hdpi |
| 48×48 | mdpi |
Web Icons
| Size | Usage |
|---|---|
| 512×512 | PWA icon |
| 192×192 | PWA icon |
| 180×180 | Apple touch |
| 32×32 | Favicon |
| 16×16 | Favicon |
Trigger Conditions
- "Create app icon" / "生成App图标"
- "Make favicon" / "制作网站图标"
- "Generate logo" / "生成Logo"
- "icon-generator"
Icon Styles
1. Flat Icon
- Clean, minimal design
- Single color or gradient
- No shadows or effects
- Best for: Modern apps
2. Material Icon
- Google Material style
- Bold shapes
- Limited color palette
- Best for: Android apps
3. iOS Style
- Rounded square
- Subtle gradients
- Apple aesthetic
- Best for: iOS apps
4. 3D Icon
- Depth and shadows
- Realistic look
- Eye-catching
- Best for: Games, entertainment
5. Line Icon
- Outline only
- Minimal, clean
- Elegant
- Best for: Productivity apps
Python Code
from PIL import Image, ImageDraw, ImageFont
import os
import math
class IconGenerator:
def __init__(self):
self.ios_sizes = [
('AppStore', 1024),
('iPhone_3x', 180),
('iPhone_2x', 120),
('iPadPro', 167),
('iPad', 152),
('iPadSpotlight', 80),
('iPhoneSettings', 58),
('iPhoneNotification', 40),
]
self.android_sizes = [
('PlayStore', 512),
('xxxhdpi', 192),
('xxhdpi', 144),
('xhdpi', 96),
('hdpi', 72),
('mdpi', 48),
]
self.web_sizes = [
('PWA_512', 512),
('PWA_192', 192),
('AppleTouch', 180),
('Favicon_32', 32),
('Favicon_16', 16),
]
def _load_font(self, size):
paths = [
'/System/Library/Fonts/PingFang.ttc',
'/usr/share/fonts/truetype/noto/NotoSansCJK-Regular.ttc',
]
for p in paths:
if os.path.exists(p):
try:
return ImageFont.truetype(p, size)
except:
continue
return ImageFont.load_default()
def create_flat_icon(self, symbol, bg_color, symbol_color, size=(512, 512)):
"""Flat design icon"""
img = Image.new('RGBA', size, (*bg_color, 255))
draw = ImageDraw.Draw(img)
font = self._load_font(size[0] // 3)
bbox = draw.textbbox((0, 0), symbol, font=font)
w, h = bbox[2] - bbox[0], bbox[3] - bbox[1]
x, y = (size[0] - w) // 2, (size[1] - h) // 2
draw.text((x, y), symbol, font=font, fill=(*symbol_color, 255))
return img
def create_material_icon(self, symbol, color, size=(512, 512)):
"""Material Design icon"""
img = Image.new('RGBA', size, (0, 0, 0, 0))
draw = ImageDraw.Draw(img)
# Circular background
margin = size[0] // 10
draw.ellipse([(margin, margin), (size[0]-margin, size[1]-margin)],
fill=(*color, 255))
# Icon
font = self._load_font(size[0] // 3)
bbox = draw.textbbox((0, 0), symbol, font=font)
w, h = bbox[2] - bbox[0], bbox[3] - bbox[1]
x, y = (size[0] - w) // 2, (size[1] - h) // 2
draw.text((x, y), symbol, font=font, fill=(255, 255, 255, 255))
return img
def create_ios_icon(self, symbol, bg_color, symbol_color, size=(1024, 1024)):
"""iOS style icon with rounded corners"""
import numpy as np
# Create base image
img = Image.new('RGBA', size, (*bg_color, 255))
draw = ImageDraw.Draw(img)
# Add subtle gradient
for y in range(size[1]):
ratio = y / size[1]
r = int(bg_color[0] * (1 - ratio * 0.2))
g = int(bg_color[1] * (1 - ratio * 0.2))
b = int(bg_color[2] * (1 - ratio * 0.2))
draw.line([(0, y), (size[0], y)], fill=(r, g, b, 255))
# Add symbol
font = self._load_font(size[0] // 3)
bbox = draw.textbbox((0, 0), symbol, font=font)
w, h = bbox[2] - bbox[0], bbox[3] - bbox[1]
x, y = (size[0] - w) // 2, (size[1] - h) // 2
draw.text((x, y), symbol, font=font, fill=(*symbol_color, 255))
return img
def create_line_icon(self, path_points, color, size=(512, 512)):
"""Line/outline style icon"""
img = Image.new('RGBA', size, (255, 255, 255, 255))
draw = ImageDraw.Draw(img)
if len(path_points) > 1:
draw.line(path_points, fill=(*color, 255), width=max(2, size[0] // 50))
return img
def apply_rounded_corners(self, img, radius=None):
"""Apply iOS-style rounded corners"""
if radius is None:
radius = img.size[0] // 5
mask = Image.new('L', img.size, 0)
draw = ImageDraw.Draw(mask)
draw.rounded_rectangle([(0, 0), img.size], radius=radius, fill=255)
result = Image.new('RGBA', img.size, (0, 0, 0, 0))
result.paste(img, mask=mask)
return result
def export_all_sizes(self, img, output_dir, platform='all'):
"""Export icon in all required sizes"""
os.makedirs(output_dir, exist_ok=True)
sizes = []
if platform in ['ios', 'all']:
sizes.extend(self.ios_sizes)
if platform in ['android', 'all']:
sizes.extend(self.android_sizes)
if platform in ['web', 'all']:
sizes.extend(self.web_sizes)
exported = []
for name, size in sizes:
resized = img.resize((size, size), Image.LANCZOS)
path = os.path.join(output_dir, f'icon_{name}_{size}x{size}.png')
resized.save(path)
exported.append(path)
return exported
# Example
gen = IconGenerator()
# Create iOS icon
icon = gen.create_ios_icon('A', (30, 60, 114), (255, 255, 255))
# Apply rounded corners
icon = gen.apply_rounded_corners(icon)
# Export all sizes
gen.export_all_sizes(icon, 'output/')
Usage Examples
User: "Create an app icon for my note-taking app"
Agent: Generate icon with notebook symbol
User: "Make a favicon for my website"
Agent: Generate 32×32 and 16×16 icons
User: "Generate all icon sizes for iOS and Android"
Agent: Export 20+ sizes for both platforms
Notes
- All icons generated locally with Pillow
- Auto-export all required sizes
- Cross-platform compatible
- Supports Chinese and English symbols
相关技能
诊断生产力系统反复失效的根因,给出最小干预——容量测算、瓶颈定位、可靠的本地记录。
从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。
在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。
以 AI 机器人身份加入视频会议,提供语音、虚拟形象与屏幕共享四种模式。
编写、调试与调优 Playwright 测试,涵盖定位器策略、追踪诊断与 CI 友好的超时配置。
tobewin 的更多技能
浏览全部技能用一份 JSON 描述就能生成标准可编辑的 PPTX,自带 11 种版式与 5 套配色。
把 Word、PDF、Excel、PowerPoint、HTML、Markdown 与 TXT 文档翻译成另一种语言,同时保留原始排版。
Professional Excel spreadsheet generator. Use when user needs to create data tables, reports, charts, financial models, or any structured data in Excel forma...
中国新闻资讯聚合工具。Use when user wants to get latest news from Chinese sources. Supports multiple news sites (Sina, Sohu, NetEase, Tencent) via browser automation an...
Data analysis tool for Excel, CSV, Word, PDF, TXT, Markdown files. Use when user needs to analyze, summarize, or compare data from multiple files. Supports f...
Marketing plan generator with web research and Word output. Use when user needs to create marketing plans, promotional campaigns, social media strategies. Fe...