工具 API

CLOUDFLARE WORKERS
文字转图 POST /api/image/generate
📁点击选择图片(PNG / JPG / WebP)
预览
🖼
点击「生成图片」查看预览
API 文档 — /api/image/generate
# GET 请求
curl "https://your-worker.dev/api/image/generate?text=Hello&width=600&height=300&fontSize=48" --output image.svg

# POST 请求(完整参数)
curl -X POST "https://your-worker.dev/api/image/generate" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello\nWorld","width":800,"height":400,"fontSize":42,"fontWeight":700,
   "bgColor":"#1a1208","textColor":"#f5f0e8","padding":60,"gradient":"linear-gradient(135deg,#667eea,#764ba2)"}' --output image.svg
const res = await fetch('/api/image/generate', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    text: 'Hello World', width: 800, height: 400,
    fontSize: 42, fontWeight: 700, bgColor: '#000', textColor: '#fff',
    format: 'png'   // svg | png | base64 | datauri
  })
});
const blob = await res.blob();
document.querySelector('img').src = URL.createObjectURL(blob);
text           string*  必填,支持 \n 换行
width          number   图片宽度 px(默认 800,最大 3000)
height         number   图片高度 px(默认 400,最大 3000)
fontSize       number   字体大小 px(默认 42)
fontWeight     number   字重 300/400/700/900(默认 400)
lineHeight     number   行高倍数(默认 1.6)
textAlign      string   left/center/right(默认 center)
bgColor        string   背景色 #rrggbb(默认 #ffffff)
textColor      string   文字色 #rrggbb(默认 #000000)
padding        number   内边距 px(默认 40)
borderRadius   number   圆角 px(默认 0)
gradient       string   CSS 渐变,覆盖 bgColor(linear-gradient(...))
bgImage        string   背景图 URL 或 base64 data URI
bgImageOpacity number   背景图透明度 0~1(默认 1.0)
bgImageFit     string   cover/contain/fill/none(默认 cover)
format         string   svg(默认) | png | base64 | datauri

响应 format=svg    → image/svg+xml
     format=png    → image/png 二进制流
     format=base64 → JSON { data, dataUri, mimeType, width, height, size }
     format=datauri→ text/plain data URI 字符串
错误 → application/json { "error": "..." }
图片裁剪 POST /api/image/crop
裁剪预览
✂️
裁剪结果将显示在这里
API 文档 — /api/image/crop
# fill 模式:居中裁剪到 400x400
curl "https://your-worker.dev/api/image/crop?url=https://example.com/img.jpg&w=400&h=400&mode=fill" --output out.png

# fit 模式:保持比例,白边填充
curl "https://your-worker.dev/api/image/crop?url=https://example.com/img.jpg&w=800&h=400&mode=fit&bg=%23ffffff" --output out.png

# POST JSON(取右下角锚点)
curl -X POST "https://your-worker.dev/api/image/crop" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/img.jpg","w":300,"h":300,"mode":"fill","gravity":"se"}' --output out.png
const res = await fetch('/api/image/crop', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    url: 'https://example.com/photo.jpg',
    w: 750, h: 1000,
    mode: 'fill',   // fill | fit
    gravity: 'c',    // nw n ne w c e sw s se
    format: 'png'    // png | svg
  })
});
const blob = await res.blob();
document.querySelector('img').src = URL.createObjectURL(blob);
url       string*  必填,支持三种格式:
            1. http/https URL
          2. data:image/png;base64,{base64字符串}
          3. 纯 base64 字符串(无前缀,自动检测格式)
w         number   输出宽度 px(1–4000,默认 800)
h         number   输出高度 px(1–4000,默认 800)
mode      string   fill(裁剪填满)| fit(保比例留边)默认 fill
          别名: fill=cover=thumb / fit=contain=pad
gravity   string   裁剪锚点 nw/n/ne/w/c/e/sw/s/se(默认 c 居中)
ax/ay    number   精确锚点百分比 0–100(覆盖 gravity)
bg        string   fit 模式留边颜色 #rrggbb(默认 #000000)
format    string   png(默认)| svg

响应 → image/png 二进制流(或 image/svg+xml)
响应头 X-Image-Width / X-Image-Height 包含实际输出尺寸
错误  → application/json { "error": "..." }
内容边界检测 POST /api/image/bbox
检测结果
🔍
结果将显示在这里
API 文档 — /api/image/bbox
# 自动检测背景(URL)
curl -X POST "https://your-worker.dev/api/image/bbox" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/icon.png","scale":1000}'

# 指定白色背景,容差 20
curl -X POST "https://your-worker.dev/api/image/bbox" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/img.jpg","bg":"#ffffff","tolerance":20}'

# 传 base64 图片数据
curl -X POST "https://your-worker.dev/api/image/bbox" \
  -H "Content-Type: application/json" \
  -d '{"url":"iVBORw0KGgo...","scale":1200}'
const res = await fetch('/api/image/bbox', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    url: 'https://example.com/icon.png',  // URL、data URI 或纯 base64
    tolerance: 15,
    scale: 1000,
  })
});
const data = await res.json();
// { width, height, top, left, originalWidth, originalHeight, bgColor, alphaOnly }
console.log(`内容区域: ${data.left},${data.top} ${data.width}x${data.height}`);
url        string*  必填,支持三种格式:
            1. http/https URL
          2. data:image/png;base64,{base64字符串}
          3. 纯 base64 字符串(无前缀,自动检测格式)
bg         string   要过滤的背景色 #rrggbb(留空=自动检测四角颜色)
tolerance  number   颜色容差 0–255(默认 15,透明图设 0 即可)
scale      number   内部渲染精度 100–2000(默认 800,越大越精确)
alphaOnly  boolean  true=仅用 alpha 通道 / false=仅颜色 / 留空=自动

透明 PNG/WebP → 无需传 bg,自动启用 alphaOnly 模式
纯色背景图   → 传 bg 颜色,调整 tolerance

响应 200 → application/json:
  { width, height, top, left,
    originalWidth, originalHeight,
    bgColor, alphaOnly, tolerance }
响应 422 → 整张图都是背景色(未找到内容)
错误    → application/json { "error": "..." }
代理转发 POST /api/proxy/forward
响应结果
API 文档 — /api/proxy/forward
# GET 请求
curl -X POST "https://your-worker.dev/api/proxy/forward" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://api.example.com/data","method":"GET"}'

# POST 请求,带自定义请求头
curl -X POST "https://your-worker.dev/api/proxy/forward" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://api.example.com/submit","method":"POST",
   "headers":{"Authorization":"Bearer token"},
   "body":{"name":"test"}}'
const res = await fetch('/api/proxy/forward', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    url: 'https://api.example.com/endpoint',
    method: 'POST',
    headers: { 'Authorization': 'Bearer token' },
    body: JSON.stringify({ key: 'value' }),
  })
});
status = res.headers.get('X-Forwarded-Status');  // 目标响应状态码
data = await res.json();
url      string*  必填,目标 http/https URL
method   string   HTTP 方法 GET/POST/PUT/DELETE/PATCH(默认 GET)
headers  object   自定义请求头键值对(可选)
body     any      请求体,string 或 object(GET/HEAD 时忽略)

响应:透传目标服务器的状态码、Content-Type 及响应体
额外响应头:
  X-Forwarded-Status  目标服务器 HTTP 状态码
  X-Forwarded-Url     实际请求的目标 URL

注意:
  - 自动添加 CORS 头,浏览器可直接跨域调用
  - hop-by-hop 请求头(Connection/Host 等)会被自动过滤
  - 目标响应的 content-encoding 头会被过滤(已由 Workers 自动解压)