105 lines
5.2 KiB
Markdown
105 lines
5.2 KiB
Markdown
---
|
|
name: baoyu-compress-image
|
|
description: Compresses images to WebP (default) or PNG with automatic tool selection. Use when user asks to "compress image", "optimize image", "convert to webp", or reduce image file size.
|
|
version: 1.56.1
|
|
metadata:
|
|
openclaw:
|
|
homepage: https://github.com/JimLiu/baoyu-skills#baoyu-compress-image
|
|
requires:
|
|
anyBins:
|
|
- bun
|
|
- npx
|
|
---
|
|
|
|
# Image Compressor
|
|
|
|
Compresses images using best available tool (sips → cwebp → ImageMagick → Sharp).
|
|
|
|
## Script Directory
|
|
|
|
Scripts in `scripts/` subdirectory. `{baseDir}` = this SKILL.md's directory path. Resolve `${BUN_X}` runtime: if `bun` installed → `bun`; if `npx` available → `npx -y bun`; else suggest installing bun. Replace `{baseDir}` and `${BUN_X}` with actual values.
|
|
|
|
| Script | Purpose |
|
|
|--------|---------|
|
|
| `scripts/main.ts` | Image compression CLI |
|
|
|
|
## Preferences (EXTEND.md)
|
|
|
|
Check EXTEND.md existence (priority order):
|
|
|
|
```bash
|
|
# macOS, Linux, WSL, Git Bash
|
|
test -f .baoyu-skills/baoyu-compress-image/EXTEND.md && echo "project"
|
|
test -f "${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-compress-image/EXTEND.md" && echo "xdg"
|
|
test -f "$HOME/.baoyu-skills/baoyu-compress-image/EXTEND.md" && echo "user"
|
|
```
|
|
|
|
```powershell
|
|
# PowerShell (Windows)
|
|
if (Test-Path .baoyu-skills/baoyu-compress-image/EXTEND.md) { "project" }
|
|
$xdg = if ($env:XDG_CONFIG_HOME) { $env:XDG_CONFIG_HOME } else { "$HOME/.config" }
|
|
if (Test-Path "$xdg/baoyu-skills/baoyu-compress-image/EXTEND.md") { "xdg" }
|
|
if (Test-Path "$HOME/.baoyu-skills/baoyu-compress-image/EXTEND.md") { "user" }
|
|
```
|
|
|
|
┌────────────────────────────────────────────────────────┬───────────────────┐
|
|
│ Path │ Location │
|
|
├────────────────────────────────────────────────────────┼───────────────────┤
|
|
│ .baoyu-skills/baoyu-compress-image/EXTEND.md │ Project directory │
|
|
├────────────────────────────────────────────────────────┼───────────────────┤
|
|
│ $HOME/.baoyu-skills/baoyu-compress-image/EXTEND.md │ User home │
|
|
└────────────────────────────────────────────────────────┴───────────────────┘
|
|
|
|
┌───────────┬───────────────────────────────────────────────────────────────────────────┐
|
|
│ Result │ Action │
|
|
├───────────┼───────────────────────────────────────────────────────────────────────────┤
|
|
│ Found │ Read, parse, apply settings │
|
|
├───────────┼───────────────────────────────────────────────────────────────────────────┤
|
|
│ Not found │ Use defaults │
|
|
└───────────┴───────────────────────────────────────────────────────────────────────────┘
|
|
|
|
**EXTEND.md Supports**: Default format | Default quality | Keep original preference
|
|
|
|
## Usage
|
|
|
|
```bash
|
|
${BUN_X} {baseDir}/scripts/main.ts <input> [options]
|
|
```
|
|
|
|
## Options
|
|
|
|
| Option | Short | Description | Default |
|
|
|--------|-------|-------------|---------|
|
|
| `<input>` | | File or directory | Required |
|
|
| `--output` | `-o` | Output path | Same path, new ext |
|
|
| `--format` | `-f` | webp, png, jpeg | webp |
|
|
| `--quality` | `-q` | Quality 0-100 | 80 |
|
|
| `--keep` | `-k` | Keep original | false |
|
|
| `--recursive` | `-r` | Process subdirs | false |
|
|
| `--json` | | JSON output | false |
|
|
|
|
## Examples
|
|
|
|
```bash
|
|
# Single file → WebP (replaces original)
|
|
${BUN_X} {baseDir}/scripts/main.ts image.png
|
|
|
|
# Keep PNG format
|
|
${BUN_X} {baseDir}/scripts/main.ts image.png -f png --keep
|
|
|
|
# Directory recursive
|
|
${BUN_X} {baseDir}/scripts/main.ts ./images/ -r -q 75
|
|
|
|
# JSON output
|
|
${BUN_X} {baseDir}/scripts/main.ts image.png --json
|
|
```
|
|
|
|
**Output**:
|
|
```
|
|
image.png → image.webp (245KB → 89KB, 64% reduction)
|
|
```
|
|
|
|
## Extension Support
|
|
|
|
Custom configurations via EXTEND.md. See **Preferences** section for paths and supported options.
|