---
name: svg-draw
description: Create SVG images and convert them to PNG without external graphics libraries. Use when you need to generate custom illustrations, avatars, or artwork (e.g., "draw a dragon", "create an avatar", "make a logo") or convert SVG files to PNG format. This skill works by writing SVG text directly (no PIL/ImageMagick required) and uses system rsvg-convert for PNG conversion.
---
# SVG Draw
Generate vector graphics and raster images using pure SVG code and system conversion tools.
## Quick Start
**For new drawings:**
1. Write SVG code directly to a file (use templates in `assets/` as starting points)
2. Convert to PNG using the conversion script
3. Send via the appropriate channel (DingTalk, Telegram, etc.)
**For existing SVG files:**
1. Use the conversion script to convert SVG → PNG
2. Share the resulting image
## Creating SVG Images
### Basic Workflow
1. **Choose or create a template**
- Check `assets/` for existing templates (dragon, lobster, etc.)
- Or write SVG from scratch
2. **Write the SVG file**
```bash
# Example: Write SVG to file
write('/path/to/output.svg', svg_content)
```
3. **Convert to PNG**
```bash
/root/.openclaw/workspace/skills/svg-draw/scripts/svg_to_png.sh input.svg output.png 400 400
```
### SVG Structure Tips
**Always include:**
- `<svg>` tag with `xmlns="http://www.w3.org/2000/svg"` and `viewBox`
- Background `<rect>` (prevents transparent backgrounds)
- Appropriate `width` and `height` attributes
**Common SVG elements:**
- Shapes: `<rect>`, `<circle>`, `<ellipse>`, `<polygon>`, `<path>`
- Text: `<text>` with `text-anchor="middle"` for centering
- Colors: Use hex codes or named colors
- Opacity: Add `opacity` attribute for transparency effects
**Example character structure:**
```
Background → Body → Head → Face features → Limbs → Accessories → Name
```
## Converting SVG to PNG
Use the bundled conversion script:
```bash
/root/.openclaw/workspace/skills/svg-draw/scripts/svg_to_png.sh <input.svg> <output.png> [width] [height]
```
**Parameters:**
- `input.svg`: Source SVG file path
- `output.png`: Destination PNG file path
- `width`: Output width in pixels (default: 400)
- `height`: Output height in pixels (default: 400)
**Example:**
```bash
/root/.openclaw/workspace/skills/svg-draw/scripts/svg_to_png.sh dragon.svg dragon.png 512 512
```
## Available Templates
### Dragon Template (`assets/dragon_template.svg`)
Blue dragon with:
- Serpentine body with wings
- Golden eyes with highlights
- Horns and pointed ears
- Curved tail
- Magical sparkles
- Name label: "大龙 🐉"
**Customization ideas:**
- Change `fill="#4a90d9"` for different body colors
- Adjust eye color by modifying `fill="#ffcc00"`
- Add/remove features (scales, fire, etc.)
- Change background color
### Lobster Template (`assets/lobster_template.svg`)
Red lobster with:
- Orange-red shell with segments
- Large claws (left and right)
- Eight walking legs
- Eyes on stalks
- Long antennae
- Tail fan
- Ocean bubbles background
- Name label: "大龙虾 🦞"
**Customization ideas:**
- Adjust shell color: `fill="#e85d04"` (darker red) or `fill="#f48c06"` (orange)
- Change claw size or position
- Add more bubbles
- Modify background
## Design Guidelines
### Color Palettes
**Friendly/Cute:**
- Body: `#4a90d9` (blue), `#f48c06` (orange)
- Accents: `#ffcc00` (yellow), `#ff6b6b` (coral)
- Background: `#1a1a2e` (dark blue)
**Professional:**
- Use muted tones
- Stick to 2-3 main colors
- Add subtle gradients if needed
### Character Design Principles
1. **Keep it simple** — Too many details look messy at small sizes
2. **Use contrast** — Light features on dark backgrounds
3. **Add personality** — Eyes, expressions, small details
4. **Include a label** — Add name/title at the bottom for context
5. **Test at target size** — View at 400x400 to check readability
## Common Tasks
### Creating an Avatar
1. Start with a template that matches the vibe (dragon, lobster, etc.)
2. Modify colors and features
3. Add personal touches (accessories, expressions)
4. Add name label at bottom
5. Convert and send
### Making a Logo
1. Use simple geometric shapes
2. Limit to 2-3 colors
3. Consider scalable design
4. Test at multiple sizes
5. Export at higher resolution (800x800 or 1024x1024)
### Customizing Templates
**Change colors:** Find `fill="#"` or `stroke="#"` attributes and replace the hex codes
**Resize elements:** Adjust `rx`, `ry` (ellipses) or `width`, `height` (rectangles)
**Reposition:** Modify `cx`, `cy` (circles/ellipses) or `x`, `y` (rectangles)
**Add text:**
```xml
<text x="200" y="370" font-family="Arial, sans-serif" font-size="24" font-weight="bold" fill="#ffcc00" text-anchor="middle">Your Text</text>
```
## Resources
### scripts/
- `svg_to_png.sh` - Convert SVG to PNG using rsvg-convert
### assets/
- `dragon_template.svg` - Friendly blue dragon
- `lobster_template.svg` - Cute red lobster
## Troubleshooting
**SVG not rendering:**
- Check for proper `<svg>` tag with `xmlns` attribute
- Ensure `viewBox` is set correctly
- Verify all tags are closed
**Conversion fails:**
- Confirm `rsvg-convert` is installed: `which rsvg-convert`
- Check file paths are correct
- Verify SVG syntax is valid
**Image looks wrong:**
- Test SVG in browser first
- Check coordinate system (viewBox vs width/height)
- Verify element stacking order (later elements draw on top)Comprehensive ImageMagick operations for image manipulation
Post images, comment, appraise, and collect NFTs on MoltCanvas
Post images, comment, appraise, and collect
Post to Twitter and Farcaster with text and images.