WebP批量转换工具

一个支持跨平台的批量图像转换工具,可将PNG、JPG和JPEG文件高效转换为WebP格式,并提供质量控制、无损模式和元数据保留等灵活选项。

  • by mhe8mah
  • TypeScript
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 mhe8mah/webp-batch-mcp

使用说明

WebP批处理转换器

一种模型上下文协议(MCP)服务器,用于将图像批量转换为具有跨平台支持的WebP格式。与Cursor等支持MCP的IDE无缝协作。

🌟 特性

  • 🖼️ 批量转换 将PNG、JPG和JPEG文件转换为WebP
  • 🌍 跨平台 支持(macOS、Linux、Windows)
  • ⚡ 线程 快速转换处理
  • 🎛️ 灵活的选择 包括质量控制、无损模式和元数据保存
  • 📊 详细报告 具有文件大小和节省统计信息
  • 🔧 双引擎支持 -更喜欢谷歌的cwebp,转而支持夏普
  • 🎯 MCP集成 用于人工智能驱动的开发环境

📦 安装

全球安装

npm install -g webp-batch-mcp

地方发展

git clone https://github.com/mhe8mah/webp-batch-mcp.git
cd webp-batch-mcp
npm install
npm run build

码头工人

docker build -t webp-batch .
docker run -v /path/to/images:/data webp-batch

🚀 用法

命令行接口

node dist/cli.js [options]

选项

  • --src <dir> -要扫描的源目录(默认:当前目录)
  • --quality <0-100> -WebP质量设置(默认值:75)
  • --lossless -使用无损编码(建议用于PNG)
  • --overwrite -用WebP版本替换原始文件
  • --threads <n> -并发转换数(默认值:CPU计数)
  • --preserve-meta -保留EXIF和ICC元数据
  • --flat <dir> -将所有WebP文件输出到指定目录

例子

# Convert all images in current directory
node dist/cli.js

# High quality conversion of specific directory
node dist/cli.js --src ./photos --quality 95 --preserve-meta

# Lossless conversion with overwrite
node dist/cli.js --src ./images --lossless --overwrite

# Batch process to output directory
node dist/cli.js --src ./input --flat ./output --threads 8

MCP服务器

MCP服务器公开了一个工具: convert_to_webp

刀具参数

{
  "src": "string",          // Source directory (default: ".")
  "quality": "number",      // Quality 0-100 (default: 75)
  "lossless": "boolean",    // Lossless mode (default: false)
  "overwrite": "boolean",   // Replace originals (default: false)
  "threads": "number",      // Concurrent threads (default: CPU count)
  "preserveMeta": "boolean", // Keep metadata (default: false)
  "flat": "string"          // Output directory (optional)
}

⚙️ 如何在游标中添加此服务器

  1. 克隆并构建项目:
git clone https://github.com/mhe8mah/webp-batch-mcp.git
cd webp-batch-mcp
npm install
npm run build
  1. 打开光标设置
  2. 引导到 特性 → 主控程序
  3. 添加新的服务器配置:
{
  "mcpServers": {
    "webp-batch": {
      "command": "node",
      "args": ["/path/to/webp-batch-mcp/dist/server.js"]
    }
  }
}
  1. 重新启动游标
  2. 这 convert_to_webp 该工具将在您的AI对话中可用

🔧 技术细节

转换策略

  1. 主发动机:谷歌 cwebp 工具(包含在libwebp工具中)

    • 最快的性能
    • 最佳压缩
    • 全功能支持
  2. 后备发动机:Sharp(Node.js)

    • 纯JavaScript实现
    • 无外部依赖关系
    • 跨平台兼容性

输出行为

  • 默认:创建 .webp 原件旁边的文件
  • 覆盖模式:用WebP版本替换原件
  • 平面模式:将所有WebP文件输出到指定目录
  • 元数据保存:应要求维护EXIF和ICC配置文件

演出

  • 默认情况下使用所有CPU内核
  • 使用p-limit同时处理图像
  • 提供实时进度反馈
  • 报告详细的转换统计数据

🛠️ 发展

建筑

npm run build

测试

npm test

开发模式

npm run dev

📊 测试结果

用真实的网络图片验证:

  • JPEG(35KB→ 17KB):节省51%的空间
  • PNG(7.9KB)→ 2.8KB):节省65%的空间
  • 总体:平均压缩53%

📋 依赖项

运行时

  • @modelcontextprotocol/sdk -MCP服务器框架
  • sharp -图像处理回退
  • chalk -彩色终端输出
  • commander -CLI参数解析
  • glob -文件模式匹配
  • p-limit -并发控制

发展

  • typescript -类型安全
  • tsup -快速TypeScript打包器
  • jest -测试框架

📄 许可证

MIT许可证-有关详细信息,请参阅许可证文件。

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 添加新功能的测试
  4. 确保所有测试通过
  5. 提交拉取请求

🆘 支持

有关问题和功能请求,请使用 GitHub问题跟踪器.