This page was machine-translated. Spotted a mistake?Help improve it.
Skip to content

替换与反转颜色

将匹配某个源颜色的像素替换为目标颜色,或将其变为透明。使用 RGB 空间中的欧氏距离,并可配置容差,以在颜色边界处实现平滑过渡。

API 端点

POST /api/v1/tools/image/replace-color

接受包含一个图片文件和一个 JSON settings 字段的 multipart 表单数据。

参数

参数类型是否必填默认值说明
sourceColorstring"#FF0000"要查找的十六进制颜色(格式:#RRGGBB
targetColorstring"#00FF00"要替换成的十六进制颜色(格式:#RRGGBB
makeTransparentbooleanfalse将匹配的像素变为透明,而不是替换为目标颜色
tolerancenumber30颜色匹配容差(0 到 255)。值越高,匹配的相似颜色范围越广

请求示例

bash
curl -X POST http://localhost:1349/api/v1/tools/image/replace-color \
  -H "Authorization: Bearer si_your-api-key" \
  -F "[email protected]" \
  -F 'settings={"sourceColor": "#FF0000", "targetColor": "#0000FF", "tolerance": 40}'

将绿色背景变为透明:

bash
curl -X POST http://localhost:1349/api/v1/tools/image/replace-color \
  -H "Authorization: Bearer si_your-api-key" \
  -F "[email protected]" \
  -F 'settings={"sourceColor": "#00FF00", "makeTransparent": true, "tolerance": 50}'

响应示例

json
{
  "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.png",
  "originalSize": 2450000,
  "processedSize": 2100000
}

说明

  • 颜色匹配使用 RGB 空间中的欧氏距离,并按 tolerance * sqrt(3) 缩放。
  • 替换混合与颜色距离成正比:越接近源颜色的像素会获得越多的目标颜色,从而形成平滑过渡。
  • makeTransparenttrue 时,如果输入格式不支持 alpha 通道(例如 JPEG),输出会被强制为 PNG(或 WebP/AVIF)。
  • 容差为 0 时仅匹配完全一致的源颜色。较高的值(50 以上)会匹配更广范围的相似色调。
  • 输出格式与输入格式一致,除非需要透明度而输入格式不支持 alpha。