跳到正文

图像处理

缩放、压缩、转换、加水印与读取图像元数据。

1. 概览

基础路径: https://api.infrai.cc/v1/image
鉴权头: Authorization: Bearer $INFRAI_API_KEY
bash
# Call any /v1/image capability over raw HTTP — no SDK to install.
# curl:
curl https://api.infrai.cc/v1/image/... \
  -H "Authorization: Bearer $INFRAI_API_KEY" \
  -H "Content-Type: application/json"

2. 方法 (18)

2.1image.process

POST /v1/image/process

处理图像:缩放、压缩、转换、加水印、旋转或去背景。

参数

名称类型必填说明
inputImageRef { url? | base64? }
必填
图像引用,URL 或 base64。
widthnumber可选目标宽度(像素)。
heightnumber可选目标高度(像素)。
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"可选输出图像格式。
qualitynumber可选压缩质量,0 到 100。
idempotency_keystring可选可选去重 key;相同重试将返回同一结果。

返回

ImageOpResult { image_url, mime, width?, height?, bytes }
名称类型说明
image_idstringimage的唯一标识符
pattern: ^pim_[A-Za-z0-9]{20,}$
urlstring资源或端点 URL
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"输出或输入格式(如 json、csv、png)
widthinteger图片宽度(像素)
≥ 1
heightinteger图片高度(像素)
≥ 1
size_bytesinteger资源大小(字节)
≥ 0
sha256string资源内容的 SHA-256 哈希
pattern: ^[a-f0-9]{64}$
original_sha256string | null处理前原始图片的 SHA-256 哈希
ops_appliedstring[]已应用的图片操作列表
cost_usdnumber | null本次操作费用(美元)
≥ 0
created_atstring资源创建时间(ISO 8601)
format: date-time

示例

一次性前置(每个范例都假定已完成):

bash
# No SDK to install — every call is a plain HTTPS request.
# Get a project key by signing in at https://infrai.cc/login (Google/GitHub gives
# you $2 free credit; email sign-in starts at $0). On 402 INSUFFICIENT_CREDIT, add
# funds at https://infrai.cc/billing (or POST /v1/account/topup and open the
# returned checkout_url).
export INFRAI_API_KEY="ifr_..."
bash
curl -X POST https://api.infrai.cc/v1/image/process \
  -H "Authorization: Bearer $INFRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image": "sample", "ops": [{"op": "resize"}]}'

2.2image.metadata

POST /v1/image/metadata

读取图像尺寸、MIME 类型与 EXIF 元数据。

参数

名称类型必填说明
inputImageRef { url? | base64? }
必填
图像引用,URL 或 base64。

返回

{ width, height, mime, exif? }
名称类型说明
widthinteger图片宽度(像素)
≥ 1
heightinteger图片高度(像素)
≥ 1
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"输出或输入格式(如 json、csv、png)
size_bytesinteger资源大小(字节)
≥ 0
exifobject | null原始 EXIF 标签映射;未读取或不存在时为 null。
color_spacestring | null例如 "sRGB"、"CMYK"。
has_alphaboolean | null图片是否包含透明通道
orientationinteger | nullEXIF 方向标签(1-8);未知时为 null。
1–8

示例

一次性前置(每个范例都假定已完成):

bash
# No SDK to install — every call is a plain HTTPS request.
# Get a project key by signing in at https://infrai.cc/login (Google/GitHub gives
# you $2 free credit; email sign-in starts at $0). On 402 INSUFFICIENT_CREDIT, add
# funds at https://infrai.cc/billing (or POST /v1/account/topup and open the
# returned checkout_url).
export INFRAI_API_KEY="ifr_..."
bash
curl -X POST https://api.infrai.cc/v1/image/metadata \
  -H "Authorization: Bearer $INFRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image": "sample"}'

2.3image.upload

POST /v1/image/upload

上传图片资源并返回资产 id 与 URL

参数

名称类型必填说明
filestring
必填
要上传的图片:本地文件路径或字节数据
filenamestring可选可选的文件名,用于存储与展示
idempotency_keystring可选可选去重 key;相同重试将返回同一结果。

返回

ImageAsset { id, url, mime, width?, height?, bytes }
名称类型说明
image_idstringimage的唯一标识符
pattern: ^pim_[A-Za-z0-9]{20,}$
urlstring资源或端点 URL
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"输出或输入格式(如 json、csv、png)
widthinteger图片宽度(像素)
≥ 1
heightinteger图片高度(像素)
≥ 1
size_bytesinteger资源大小(字节)
≥ 0
sha256string资源内容的 SHA-256 哈希
pattern: ^[a-f0-9]{64}$
original_sha256string | null处理前原始图片的 SHA-256 哈希
ops_appliedstring[]已应用的图片操作列表
cost_usdnumber | null本次操作费用(美元)
≥ 0
created_atstring资源创建时间(ISO 8601)
format: date-time

示例

一次性前置(每个范例都假定已完成):

bash
# No SDK to install — every call is a plain HTTPS request.
# Get a project key by signing in at https://infrai.cc/login (Google/GitHub gives
# you $2 free credit; email sign-in starts at $0). On 402 INSUFFICIENT_CREDIT, add
# funds at https://infrai.cc/billing (or POST /v1/account/topup and open the
# returned checkout_url).
export INFRAI_API_KEY="ifr_..."
bash
curl -X POST https://api.infrai.cc/v1/image/upload \
  -H "Authorization: Bearer $INFRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"file": "sample"}'

2.4image.get

GET /v1/image/get/{id}

按 id 读取单个图片资产的元信息

参数

名称类型必填说明
idstring
必填
图片资产 id

返回

ImageAsset { id, url, mime, width?, height?, bytes }
名称类型说明
image_idstringimage的唯一标识符
pattern: ^pim_[A-Za-z0-9]{20,}$
urlstring资源或端点 URL
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"输出或输入格式(如 json、csv、png)
widthinteger图片宽度(像素)
≥ 1
heightinteger图片高度(像素)
≥ 1
size_bytesinteger资源大小(字节)
≥ 0
sha256string资源内容的 SHA-256 哈希
pattern: ^[a-f0-9]{64}$
original_sha256string | null处理前原始图片的 SHA-256 哈希
ops_appliedstring[]已应用的图片操作列表
cost_usdnumber | null本次操作费用(美元)
≥ 0
created_atstring资源创建时间(ISO 8601)
format: date-time

示例

一次性前置(每个范例都假定已完成):

bash
# No SDK to install — every call is a plain HTTPS request.
# Get a project key by signing in at https://infrai.cc/login (Google/GitHub gives
# you $2 free credit; email sign-in starts at $0). On 402 INSUFFICIENT_CREDIT, add
# funds at https://infrai.cc/billing (or POST /v1/account/topup and open the
# returned checkout_url).
export INFRAI_API_KEY="ifr_..."
bash
curl -X GET https://api.infrai.cc/v1/image/get/ID \
  -H "Authorization: Bearer $INFRAI_API_KEY"

2.5image.delete

DELETE /v1/image/delete/{id}

按 id 删除已存储的图片资产

参数

名称类型必填说明
idstring
必填
要删除的图片资产 id
idempotency_keystring可选可选去重 key;相同重试将返回同一结果。

返回

{ ok: boolean }
名称类型说明
deletedboolean资源是否已成功删除
image_idstring | nullimage的唯一标识符
pattern: ^pim_[A-Za-z0-9]{20,}$

示例

一次性前置(每个范例都假定已完成):

bash
# No SDK to install — every call is a plain HTTPS request.
# Get a project key by signing in at https://infrai.cc/login (Google/GitHub gives
# you $2 free credit; email sign-in starts at $0). On 402 INSUFFICIENT_CREDIT, add
# funds at https://infrai.cc/billing (or POST /v1/account/topup and open the
# returned checkout_url).
export INFRAI_API_KEY="ifr_..."
bash
curl -X DELETE https://api.infrai.cc/v1/image/delete/ID \
  -H "Authorization: Bearer $INFRAI_API_KEY"

2.6image.resize

POST /v1/image/resize

缩放图片到指定宽高

参数

名称类型必填说明
imageImageRef { url? | base64? | id? }
必填
图像引用,URL 或 base64。
widthnumber可选目标宽度(像素)。
≥ 1
heightnumber可选目标高度(像素)。
≥ 1
fit"cover" | "contain" | "fill" | "inside" | "outside"可选缩放适配模式:inside/cover/contain/fill
enlargeboolean可选当原图小于目标尺寸时是否允许放大
default: false
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"可选输出图像格式。
idempotency_keystring可选可选去重 key;相同重试将返回同一结果。

返回

ProcessedImage { image_url, mime, width, height, bytes }
名称类型说明
image_idstringimage的唯一标识符
pattern: ^pim_[A-Za-z0-9]{20,}$
urlstring资源或端点 URL
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"输出或输入格式(如 json、csv、png)
widthinteger图片宽度(像素)
≥ 1
heightinteger图片高度(像素)
≥ 1
size_bytesinteger资源大小(字节)
≥ 0
sha256string资源内容的 SHA-256 哈希
pattern: ^[a-f0-9]{64}$
original_sha256string | null处理前原始图片的 SHA-256 哈希
ops_appliedstring[]已应用的图片操作列表
cost_usdnumber | null本次操作费用(美元)
≥ 0
created_atstring资源创建时间(ISO 8601)
format: date-time

示例

一次性前置(每个范例都假定已完成):

bash
# No SDK to install — every call is a plain HTTPS request.
# Get a project key by signing in at https://infrai.cc/login (Google/GitHub gives
# you $2 free credit; email sign-in starts at $0). On 402 INSUFFICIENT_CREDIT, add
# funds at https://infrai.cc/billing (or POST /v1/account/topup and open the
# returned checkout_url).
export INFRAI_API_KEY="ifr_..."
bash
curl -X POST https://api.infrai.cc/v1/image/resize \
  -H "Authorization: Bearer $INFRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image": "sample"}'

2.7image.crop

POST /v1/image/crop

按 xywh 矩形框裁剪图片

参数

名称类型必填说明
imageImageRef { url? | base64? | id? }
必填
图像引用,URL 或 base64。
xnumber
必填
裁剪起点的横坐标(像素)
≥ 0
ynumber
必填
裁剪起点的纵坐标(像素)
≥ 0
widthnumber
必填
目标宽度(像素)。
≥ 1
heightnumber
必填
目标高度(像素)。
≥ 1
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"可选输出图像格式。
idempotency_keystring可选可选去重 key;相同重试将返回同一结果。

返回

ProcessedImage { image_url, mime, width, height, bytes }
名称类型说明
image_idstringimage的唯一标识符
pattern: ^pim_[A-Za-z0-9]{20,}$
urlstring资源或端点 URL
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"输出或输入格式(如 json、csv、png)
widthinteger图片宽度(像素)
≥ 1
heightinteger图片高度(像素)
≥ 1
size_bytesinteger资源大小(字节)
≥ 0
sha256string资源内容的 SHA-256 哈希
pattern: ^[a-f0-9]{64}$
original_sha256string | null处理前原始图片的 SHA-256 哈希
ops_appliedstring[]已应用的图片操作列表
cost_usdnumber | null本次操作费用(美元)
≥ 0
created_atstring资源创建时间(ISO 8601)
format: date-time

示例

一次性前置(每个范例都假定已完成):

bash
# No SDK to install — every call is a plain HTTPS request.
# Get a project key by signing in at https://infrai.cc/login (Google/GitHub gives
# you $2 free credit; email sign-in starts at $0). On 402 INSUFFICIENT_CREDIT, add
# funds at https://infrai.cc/billing (or POST /v1/account/topup and open the
# returned checkout_url).
export INFRAI_API_KEY="ifr_..."
bash
curl -X POST https://api.infrai.cc/v1/image/crop \
  -H "Authorization: Bearer $INFRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image": "sample", "x": 1, "y": 1, "width": 1, "height": 1}'

2.8image.smart_crop

POST /v1/image/smart_crop

显著性感知裁剪到指定宽高比

参数

名称类型必填说明
imageImageRef { url? | base64? | id? }
必填
图像引用,URL 或 base64。
aspectstring
必填
目标宽高比,例如 1:1、16:9
target"face" | "saliency"可选裁剪聚焦目标:face(人脸)或 saliency(主体)
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"可选输出图像格式。
idempotency_keystring可选可选去重 key;相同重试将返回同一结果。

返回

ProcessedImage { image_url, mime, width, height, bytes }
名称类型说明
image_idstringimage的唯一标识符
pattern: ^pim_[A-Za-z0-9]{20,}$
urlstring资源或端点 URL
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"输出或输入格式(如 json、csv、png)
widthinteger图片宽度(像素)
≥ 1
heightinteger图片高度(像素)
≥ 1
size_bytesinteger资源大小(字节)
≥ 0
sha256string资源内容的 SHA-256 哈希
pattern: ^[a-f0-9]{64}$
original_sha256string | null处理前原始图片的 SHA-256 哈希
ops_appliedstring[]已应用的图片操作列表
cost_usdnumber | null本次操作费用(美元)
≥ 0
created_atstring资源创建时间(ISO 8601)
format: date-time

示例

一次性前置(每个范例都假定已完成):

bash
# No SDK to install — every call is a plain HTTPS request.
# Get a project key by signing in at https://infrai.cc/login (Google/GitHub gives
# you $2 free credit; email sign-in starts at $0). On 402 INSUFFICIENT_CREDIT, add
# funds at https://infrai.cc/billing (or POST /v1/account/topup and open the
# returned checkout_url).
export INFRAI_API_KEY="ifr_..."
bash
curl -X POST https://api.infrai.cc/v1/image/smart_crop \
  -H "Authorization: Bearer $INFRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image": "sample", "aspect": "sample"}'

2.9image.rotate

POST /v1/image/rotate

按角度旋转图片

参数

名称类型必填说明
imageImageRef { url? | base64? | id? }
必填
图像引用,URL 或 base64。
degreesnumber
必填
旋转角度(度)
auto_orientboolean可选是否按 EXIF 信息自动校正方向
default: true
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"可选输出图像格式。
idempotency_keystring可选可选去重 key;相同重试将返回同一结果。

返回

ProcessedImage { image_url, mime, width, height, bytes }
名称类型说明
image_idstringimage的唯一标识符
pattern: ^pim_[A-Za-z0-9]{20,}$
urlstring资源或端点 URL
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"输出或输入格式(如 json、csv、png)
widthinteger图片宽度(像素)
≥ 1
heightinteger图片高度(像素)
≥ 1
size_bytesinteger资源大小(字节)
≥ 0
sha256string资源内容的 SHA-256 哈希
pattern: ^[a-f0-9]{64}$
original_sha256string | null处理前原始图片的 SHA-256 哈希
ops_appliedstring[]已应用的图片操作列表
cost_usdnumber | null本次操作费用(美元)
≥ 0
created_atstring资源创建时间(ISO 8601)
format: date-time

示例

一次性前置(每个范例都假定已完成):

bash
# No SDK to install — every call is a plain HTTPS request.
# Get a project key by signing in at https://infrai.cc/login (Google/GitHub gives
# you $2 free credit; email sign-in starts at $0). On 402 INSUFFICIENT_CREDIT, add
# funds at https://infrai.cc/billing (or POST /v1/account/topup and open the
# returned checkout_url).
export INFRAI_API_KEY="ifr_..."
bash
curl -X POST https://api.infrai.cc/v1/image/rotate \
  -H "Authorization: Bearer $INFRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image": "sample", "degrees": 1.0}'

2.10image.compress

POST /v1/image/compress

按质量或目标字节数压缩图片

参数

名称类型必填说明
imageImageRef { url? | base64? | id? }
必填
图像引用,URL 或 base64。
qualitynumber可选压缩质量,0 到 100。
1–100
target_bytesnumber可选目标输出字节数上限,用于限定压缩后大小
≥ 1
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"可选输出图像格式。
idempotency_keystring可选可选去重 key;相同重试将返回同一结果。

返回

ProcessedImage { image_url, mime, width, height, bytes }
名称类型说明
image_idstringimage的唯一标识符
pattern: ^pim_[A-Za-z0-9]{20,}$
urlstring资源或端点 URL
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"输出或输入格式(如 json、csv、png)
widthinteger图片宽度(像素)
≥ 1
heightinteger图片高度(像素)
≥ 1
size_bytesinteger资源大小(字节)
≥ 0
sha256string资源内容的 SHA-256 哈希
pattern: ^[a-f0-9]{64}$
original_sha256string | null处理前原始图片的 SHA-256 哈希
ops_appliedstring[]已应用的图片操作列表
cost_usdnumber | null本次操作费用(美元)
≥ 0
created_atstring资源创建时间(ISO 8601)
format: date-time

示例

一次性前置(每个范例都假定已完成):

bash
# No SDK to install — every call is a plain HTTPS request.
# Get a project key by signing in at https://infrai.cc/login (Google/GitHub gives
# you $2 free credit; email sign-in starts at $0). On 402 INSUFFICIENT_CREDIT, add
# funds at https://infrai.cc/billing (or POST /v1/account/topup and open the
# returned checkout_url).
export INFRAI_API_KEY="ifr_..."
bash
curl -X POST https://api.infrai.cc/v1/image/compress \
  -H "Authorization: Bearer $INFRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image": "sample"}'

2.11image.convert

POST /v1/image/convert

把图片重新编码为另一种格式

参数

名称类型必填说明
imageImageRef { url? | base64? | id? }
必填
图像引用,URL 或 base64。
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"
必填
输出图像格式。
idempotency_keystring可选可选去重 key;相同重试将返回同一结果。

返回

ProcessedImage { image_url, mime, width, height, bytes }
名称类型说明
image_idstringimage的唯一标识符
pattern: ^pim_[A-Za-z0-9]{20,}$
urlstring资源或端点 URL
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"输出或输入格式(如 json、csv、png)
widthinteger图片宽度(像素)
≥ 1
heightinteger图片高度(像素)
≥ 1
size_bytesinteger资源大小(字节)
≥ 0
sha256string资源内容的 SHA-256 哈希
pattern: ^[a-f0-9]{64}$
original_sha256string | null处理前原始图片的 SHA-256 哈希
ops_appliedstring[]已应用的图片操作列表
cost_usdnumber | null本次操作费用(美元)
≥ 0
created_atstring资源创建时间(ISO 8601)
format: date-time

示例

一次性前置(每个范例都假定已完成):

bash
# No SDK to install — every call is a plain HTTPS request.
# Get a project key by signing in at https://infrai.cc/login (Google/GitHub gives
# you $2 free credit; email sign-in starts at $0). On 402 INSUFFICIENT_CREDIT, add
# funds at https://infrai.cc/billing (or POST /v1/account/topup and open the
# returned checkout_url).
export INFRAI_API_KEY="ifr_..."
bash
curl -X POST https://api.infrai.cc/v1/image/convert \
  -H "Authorization: Bearer $INFRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image": "sample", "format": "auto"}'

2.12image.watermark

POST /v1/image/watermark

为图片叠加文字或图片水印

参数

名称类型必填说明
imageImageRef { url? | base64? | id? }
必填
图像引用,URL 或 base64。
textstring可选水印文字内容
watermark_imageImageRef { url? | base64? | id? }可选用作水印的图片引用(url/base64/id)
position"top_left" | "top" | "top_right" | "left" | "center" | "right" | "bottom_left" | "bottom" | "bottom_right"可选水印位置:四角或居中
default: "bottom_right"
opacitynumber可选水印不透明度,0 到 1 之间
0–1default: 1
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"可选输出图像格式。
idempotency_keystring可选可选去重 key;相同重试将返回同一结果。

返回

ProcessedImage { image_url, mime, width, height, bytes }
名称类型说明
image_idstringimage的唯一标识符
pattern: ^pim_[A-Za-z0-9]{20,}$
urlstring资源或端点 URL
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"输出或输入格式(如 json、csv、png)
widthinteger图片宽度(像素)
≥ 1
heightinteger图片高度(像素)
≥ 1
size_bytesinteger资源大小(字节)
≥ 0
sha256string资源内容的 SHA-256 哈希
pattern: ^[a-f0-9]{64}$
original_sha256string | null处理前原始图片的 SHA-256 哈希
ops_appliedstring[]已应用的图片操作列表
cost_usdnumber | null本次操作费用(美元)
≥ 0
created_atstring资源创建时间(ISO 8601)
format: date-time

示例

一次性前置(每个范例都假定已完成):

bash
# No SDK to install — every call is a plain HTTPS request.
# Get a project key by signing in at https://infrai.cc/login (Google/GitHub gives
# you $2 free credit; email sign-in starts at $0). On 402 INSUFFICIENT_CREDIT, add
# funds at https://infrai.cc/billing (or POST /v1/account/topup and open the
# returned checkout_url).
export INFRAI_API_KEY="ifr_..."
bash
curl -X POST https://api.infrai.cc/v1/image/watermark \
  -H "Authorization: Bearer $INFRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image": "sample"}'

2.13image.background_remove

POST /v1/image/background_remove

AI 抠图去除图片背景

参数

名称类型必填说明
imageImageRef { url? | base64? | id? }
必填
图像引用,URL 或 base64。
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"可选输出图像格式。
idempotency_keystring可选可选去重 key;相同重试将返回同一结果。

返回

ProcessedImage { image_url, mime, width, height, bytes }
名称类型说明
image_idstringimage的唯一标识符
pattern: ^pim_[A-Za-z0-9]{20,}$
urlstring资源或端点 URL
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"输出或输入格式(如 json、csv、png)
widthinteger图片宽度(像素)
≥ 1
heightinteger图片高度(像素)
≥ 1
size_bytesinteger资源大小(字节)
≥ 0
sha256string资源内容的 SHA-256 哈希
pattern: ^[a-f0-9]{64}$
original_sha256string | null处理前原始图片的 SHA-256 哈希
ops_appliedstring[]已应用的图片操作列表
cost_usdnumber | null本次操作费用(美元)
≥ 0
created_atstring资源创建时间(ISO 8601)
format: date-time

示例

一次性前置(每个范例都假定已完成):

bash
# No SDK to install — every call is a plain HTTPS request.
# Get a project key by signing in at https://infrai.cc/login (Google/GitHub gives
# you $2 free credit; email sign-in starts at $0). On 402 INSUFFICIENT_CREDIT, add
# funds at https://infrai.cc/billing (or POST /v1/account/topup and open the
# returned checkout_url).
export INFRAI_API_KEY="ifr_..."
bash
curl -X POST https://api.infrai.cc/v1/image/background_remove \
  -H "Authorization: Bearer $INFRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image": "sample"}'

2.14image.transformation.create

POST /v1/image/transformation/create

注册一个具名图片变换模板

参数

名称类型必填说明
namestring
必填
变换模板名称,用于在投放 URL 中复用
1–128 chars
transformImageTransform
必填
图片变换参数对象(宽高、格式、裁剪等)
idempotency_keystring可选可选去重 key;相同重试将返回同一结果。

返回

ImageTransformation { id, name, transform, created_at }
名称类型说明
transformation_idstringtransformation的唯一标识符
pattern: ^imgtf_[A-Za-z0-9]{20,}$
namestring资源的可读名称
1–128 chars
transformobject图片变换规格
transform.winteger | null目标宽度。
≥ 1
transform.hinteger | null目标高度。
≥ 1
transform.f"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"输出图片格式
transform.qinteger | null编码质量 1-100。
1–100
transform.fit"cover" | "contain" | "fill" | "inside" | "outside"调整尺寸的适配模式(cover、contain、fill、inside、outside)
created_atstring资源创建时间(ISO 8601)
format: date-time

示例

一次性前置(每个范例都假定已完成):

bash
# No SDK to install — every call is a plain HTTPS request.
# Get a project key by signing in at https://infrai.cc/login (Google/GitHub gives
# you $2 free credit; email sign-in starts at $0). On 402 INSUFFICIENT_CREDIT, add
# funds at https://infrai.cc/billing (or POST /v1/account/topup and open the
# returned checkout_url).
export INFRAI_API_KEY="ifr_..."
bash
curl -X POST https://api.infrai.cc/v1/image/transformation/create \
  -H "Authorization: Bearer $INFRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "example", "transform": {}}'

2.15image.transformation.list

GET /v1/image/transformation/list

列出已注册的具名图片变换模板

参数

名称类型必填说明
cursorstring可选分页游标:传入上一页返回的 next_cursor 获取下一页。
limitnumber可选单页返回条数上限。

返回

{ items: ImageTransformation[], next_cursor? }
名称类型说明
itemsobject[]本页结果条目数组
items[].transformation_idstringtransformation的唯一标识符
pattern: ^imgtf_[A-Za-z0-9]{20,}$
items[].namestring此资源的可读名称
1–128 chars
items[].transformobject图片变换规格
items[].transform.winteger | null目标宽度。
≥ 1
items[].transform.hinteger | null目标高度。
≥ 1
items[].transform.f"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"输出图片格式
items[].transform.qinteger | null编码质量 1-100。
1–100
items[].transform.fit"cover" | "contain" | "fill" | "inside" | "outside"调整尺寸的适配模式(cover、contain、fill、inside、outside)
items[].created_atstring此资源创建的 ISO 8601 时间戳
format: date-time
next_cursorstring | null获取下一页的不透明游标;null 或不存在表示最后一页

示例

一次性前置(每个范例都假定已完成):

bash
# No SDK to install — every call is a plain HTTPS request.
# Get a project key by signing in at https://infrai.cc/login (Google/GitHub gives
# you $2 free credit; email sign-in starts at $0). On 402 INSUFFICIENT_CREDIT, add
# funds at https://infrai.cc/billing (or POST /v1/account/topup and open the
# returned checkout_url).
export INFRAI_API_KEY="ifr_..."
bash
curl -X GET https://api.infrai.cc/v1/image/transformation/list \
  -H "Authorization: Bearer $INFRAI_API_KEY"

2.16image.batch.submit

POST /v1/image/batch/submit

提交批量图片处理任务

参数

名称类型必填说明
itemsArray<{ image, ops }>
必填
批处理条目数组,每项含 image 与 ops(处理步骤)
≥ 1 item
webhook_urlstring可选任务完成时回调通知的 Webhook 地址
format: uri
idempotency_keystring可选可选去重 key;相同重试将返回同一结果。

返回

ImageJob { id, status, count, created_at }
名称类型说明
job_idstringasync job的唯一标识符
pattern: ^imgjob_[A-Za-z0-9]{20,}$
status"queued" | "in_progress" | "completed" | "failed" | "cancelled"当前资源状态
total_countinteger跨所有页的总条目数
≥ 1

示例

一次性前置(每个范例都假定已完成):

bash
# No SDK to install — every call is a plain HTTPS request.
# Get a project key by signing in at https://infrai.cc/login (Google/GitHub gives
# you $2 free credit; email sign-in starts at $0). On 402 INSUFFICIENT_CREDIT, add
# funds at https://infrai.cc/billing (or POST /v1/account/topup and open the
# returned checkout_url).
export INFRAI_API_KEY="ifr_..."
bash
curl -X POST https://api.infrai.cc/v1/image/batch/submit \
  -H "Authorization: Bearer $INFRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"items": [{"image": "sample", "ops": [{"op": "resize"}]}]}'

2.17image.batch.status

GET /v1/image/batch/status/{id}

查询批量图片处理任务的进度

参数

名称类型必填说明
idstring
必填
批处理任务 job id

返回

ImageJob { id, status, count, done, failed, results? }
名称类型说明
job_idstringasync job的唯一标识符
pattern: ^imgjob_[A-Za-z0-9]{20,}$
status"queued" | "in_progress" | "completed" | "failed" | "cancelled"当前资源状态
itemsobject[]本页结果条目数组
items[].indexinteger-
≥ 0
items[].status"queued" | "in_progress" | "completed" | "failed"-
items[].resultobject | null-
items[].result.image_idstringimage的唯一标识符
pattern: ^pim_[A-Za-z0-9]{20,}$
items[].result.urlstring此资源或端点的 URL
items[].result.format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"输出或输入格式(如 json、csv、png)
items[].result.widthinteger图片宽度(像素)
≥ 1
items[].result.heightinteger图片高度(像素)
≥ 1
items[].result.size_bytesinteger资源大小(字节)
≥ 0
items[].result.sha256string资源内容的 SHA-256 哈希
pattern: ^[a-f0-9]{64}$
items[].result.original_sha256string | null处理前原始图片的 SHA-256 哈希
items[].result.ops_appliedstring[]image operations that were applied列表
items[].result.cost_usdnumber | null此操作成本(美元)
≥ 0
items[].result.created_atstring此资源创建的 ISO 8601 时间戳
format: date-time
items[].errorstring | null此项失败时的错误码。

示例

一次性前置(每个范例都假定已完成):

bash
# No SDK to install — every call is a plain HTTPS request.
# Get a project key by signing in at https://infrai.cc/login (Google/GitHub gives
# you $2 free credit; email sign-in starts at $0). On 402 INSUFFICIENT_CREDIT, add
# funds at https://infrai.cc/billing (or POST /v1/account/topup and open the
# returned checkout_url).
export INFRAI_API_KEY="ifr_..."
bash
curl -X GET https://api.infrai.cc/v1/image/batch/status/ID \
  -H "Authorization: Bearer $INFRAI_API_KEY"

2.18image.batch.cancel

POST /v1/image/batch/cancel/{id}

取消批量图片处理任务

参数

名称类型必填说明
idstring
必填
要取消的批处理任务 job id
idempotency_keystring可选可选去重 key;相同重试将返回同一结果。

返回

ImageJob { id, status }
名称类型说明
cancelledboolean资源是否已成功取消
job_idstring | nullasync job的唯一标识符
pattern: ^imgjob_[A-Za-z0-9]{20,}$

示例

一次性前置(每个范例都假定已完成):

bash
# No SDK to install — every call is a plain HTTPS request.
# Get a project key by signing in at https://infrai.cc/login (Google/GitHub gives
# you $2 free credit; email sign-in starts at $0). On 402 INSUFFICIENT_CREDIT, add
# funds at https://infrai.cc/billing (or POST /v1/account/topup and open the
# returned checkout_url).
export INFRAI_API_KEY="ifr_..."
bash
curl -X POST https://api.infrai.cc/v1/image/batch/cancel/ID \
  -H "Authorization: Bearer $INFRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"job_id": "sample"}'

3. 全部能力

本模块全部已路由能力——完整的对外 REST 契约。上方方法是带讲解的入门示例,此表是完整参考。

image.background_removePOST /v1/image/background_remove

Transform an EXISTING image by AI-removing its background. To GENERATE images with AI use ai.image.

参数 (3)
名称类型必填说明
imageobject必填Image data or reference for processing
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"可选Output or input format (e.g. json, csv, png)
idempotency_keystring | null可选Client-provided idempotency key; prevents duplicate execution on retry
image.batch.cancelPOST /v1/image/batch/cancel/{id}

Cancel a batch image-processing job by job ID; idempotent write.

参数 (3)
名称类型必填说明
idstring必填Path parameter.
job_idstring必填Id of the image batch job to cancel.
idempotency_keystring | null可选Client-provided idempotency key; prevents duplicate execution on retry
image.batch.statusGET /v1/image/batch/status/{id}

Get the progress and results of a batch image-processing job by job ID.

参数 (1)
名称类型必填说明
idstring必填Path parameter.
image.batch.submitPOST /v1/image/batch/submit

Submit a batch image-processing job and get a job handle, with optional webhook callback.

参数 (4)
名称类型必填说明
itemsobject[]必填Array of result items in this page
≥ 1 item
webhook_urlstring | null可选Optional completion callback; Infrai signs deliveries.
format: uri
idempotency_keystring | null可选Client-provided idempotency key; prevents duplicate execution on retry
storeboolean可选Opt in to RETAIN the produced asset/record in Infrai's own store (default false = stateless passthrough: process, return inline, keep nothing). When true, Infrai persists the asset, bills a self-hosted storage line item and applies a retention TTL — and only then do the *.list/get/delete read caps see it.
default: false
image.compressPOST /v1/image/compress

Transform an EXISTING image by compressing it to a target quality or byte size, optionally re-encoding. To GENERATE images with AI use ai.image.

参数 (6)
名称类型必填说明
imageobject必填Image data or reference for processing
qualityinteger | null可选Encoder quality 1-100; mutually informative with target_bytes.
1–100
target_bytesinteger | null可选Compress to <= this byte budget via quality binary search.
≥ 1
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"可选Output or input format (e.g. json, csv, png)
idempotency_keystring | null可选Client-provided idempotency key; prevents duplicate execution on retry
storeboolean可选Opt in to RETAIN the produced asset/record in Infrai's own store (default false = stateless passthrough: process, return inline, keep nothing). When true, Infrai persists the asset, bills a self-hosted storage line item and applies a retention TTL — and only then do the *.list/get/delete read caps see it.
default: false
image.convertPOST /v1/image/convert

Transform an EXISTING image by re-encoding it to another format (jpeg/png/webp/avif). To GENERATE images with AI use ai.image.

参数 (4)
名称类型必填说明
imageobject必填Image data or reference for processing
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"必填Output or input format (e.g. json, csv, png)
idempotency_keystring | null可选Client-provided idempotency key; prevents duplicate execution on retry
storeboolean可选Opt in to RETAIN the produced asset/record in Infrai's own store (default false = stateless passthrough: process, return inline, keep nothing). When true, Infrai persists the asset, bills a self-hosted storage line item and applies a retention TTL — and only then do the *.list/get/delete read caps see it.
default: false
image.cropPOST /v1/image/crop

Transform an EXISTING image by cropping it to an x/y/w/h rectangle. To GENERATE images with AI use ai.image.

参数 (8)
名称类型必填说明
imageobject必填Image data or reference for processing
xinteger必填X coordinate for crop origin
≥ 0
yinteger必填Y coordinate for crop origin
≥ 0
widthinteger必填Width of the image in pixels
≥ 1
heightinteger必填Height of the image in pixels
≥ 1
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"可选Output or input format (e.g. json, csv, png)
idempotency_keystring | null可选Client-provided idempotency key; prevents duplicate execution on retry
storeboolean可选Opt in to RETAIN the produced asset/record in Infrai's own store (default false = stateless passthrough: process, return inline, keep nothing). When true, Infrai persists the asset, bills a self-hosted storage line item and applies a retention TTL — and only then do the *.list/get/delete read caps see it.
default: false
image.deleteDELETE /v1/image/delete/{id}

Delete a stored image asset by ID; idempotent write.

参数 (1)
名称类型必填说明
idstring必填Path parameter.
image.getGET /v1/image/get/{id}

Get the metadata of one stored image asset (URL, MIME type, dimensions, byte size) by ID.

参数 (1)
名称类型必填说明
idstring必填Path parameter.
image.metadataPOST /v1/image/metadata

Inspect an EXISTING image's metadata (dimensions, format, EXIF) without modifying it; read-only.

参数 (1)
名称类型必填说明
imageobject必填Image data or reference for processing
image.moderatePOST /v1/image/moderate

Classify an image for unsafe content (adult/violence/etc.) returning a flagged verdict plus per-category flags/scores. Real vendor dispatch: Google Vision SafeSearch, Aliyun Green image scan. service_markup applies.

参数 (2)
名称类型必填说明
imagestring必填Image as data URI, URL, or base64.
vendor"google" | "aliyun"可选Optional vendor pin.
image.ocrPOST /v1/image/ocr

Extract text from an image (distinct from pdf.ocr) returning full text plus per-line blocks. Real vendor dispatch: Aliyun OCR, Baidu OCR, AWS Textract; self_hosted tesseract honestly degrades to a 503 when the binary is absent (no synthetic text).

参数 (3)
名称类型必填说明
imagestring必填Image as data URI, URL, or base64.
languagestring可选Optional language hint (e.g. eng, chi_sim).
vendor"aliyun" | "baidu" | "aws" | "self_hosted"可选Optional vendor pin.
image.processPOST /v1/image/process

Transform an EXISTING image through a chained pipeline of ops, re-encoded once at the end. To GENERATE images with AI use ai.image.

参数 (5)
名称类型必填说明
imageobject必填The source image, as either inline bytes (url/base64) or a stable asset reference (image_id).
opsobject[]必填Ordered list of image operations to apply
1–20 items
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"可选Output or input format (e.g. json, csv, png)
idempotency_keystring | null可选Client-provided idempotency key; prevents duplicate execution on retry
storeboolean可选Opt in to RETAIN the produced asset/record in Infrai's own store (default false = stateless passthrough: process, return inline, keep nothing). When true, Infrai persists the asset, bills a self-hosted storage line item and applies a retention TTL — and only then do the *.list/get/delete read caps see it.
default: false
image.resizePOST /v1/image/resize

Transform an EXISTING image by resizing it with a fit mode and optional upscaling/format. To GENERATE images with AI use ai.image.

参数 (8)
名称类型必填说明
imageobject必填Image data or reference for processing
widthinteger | null可选Width of the image in pixels
≥ 1
heightinteger | null可选Height of the image in pixels
≥ 1
fit"cover" | "contain" | "fill" | "inside" | "outside"可选Fit mode for resizing (cover, contain, fill, inside, outside)
enlargeboolean可选Allow upscaling beyond source dimensions; false (default) never upscales.
default: false
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"可选Output or input format (e.g. json, csv, png)
idempotency_keystring | null可选Client-provided idempotency key; prevents duplicate execution on retry
storeboolean可选Opt in to RETAIN the produced asset/record in Infrai's own store (default false = stateless passthrough: process, return inline, keep nothing). When true, Infrai persists the asset, bills a self-hosted storage line item and applies a retention TTL — and only then do the *.list/get/delete read caps see it.
default: false
image.rotatePOST /v1/image/rotate

Transform an EXISTING image by rotating it, optionally auto-correcting orientation from EXIF. To GENERATE images with AI use ai.image.

参数 (5)
名称类型必填说明
imageobject必填Image data or reference for processing
degreesnumber必填Clockwise rotation in degrees.
auto_orientboolean可选Apply EXIF orientation correction before rotating.
default: true
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"可选Output or input format (e.g. json, csv, png)
idempotency_keystring | null可选Client-provided idempotency key; prevents duplicate execution on retry
image.smart_cropPOST /v1/image/smart_crop

Transform an EXISTING image with saliency-aware cropping to an aspect ratio, optionally targeting faces or subject. To GENERATE images with AI use ai.image.

参数 (5)
名称类型必填说明
imageobject必填Image data or reference for processing
aspectstring必填Target aspect ratio, e.g. '1:1', '16:9'.
targetstring | null可选Saliency target hint, e.g. 'face', 'auto'.
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"可选Output or input format (e.g. json, csv, png)
idempotency_keystring | null可选Client-provided idempotency key; prevents duplicate execution on retry
image.tagPOST /v1/image/tag

Detect labels/objects in an image returning label + confidence pairs. Real vendor dispatch: Google Vision LABEL_DETECTION, AWS Rekognition DetectLabels. service_markup applies.

参数 (3)
名称类型必填说明
imagestring必填Image as data URI, URL, or base64.
max_tagsinteger可选Maximum number of tags to return
≥ 1default: 10
vendor"google" | "aws"可选Optional vendor pin.
image.transformation.createPOST /v1/image/transformation/create

Register a named image-transformation template reusable in delivery URLs.

参数 (3)
名称类型必填说明
namestring必填Human-readable name for this resource
1–128 chars
transformobject必填Image transformation specification
idempotency_keystring | null可选Client-provided idempotency key; prevents duplicate execution on retry
image.transformation.listGET /v1/image/transformation/list

Page through the registered named image-transformation templates.

无请求参数。

image.uploadPOST /v1/image/upload

Upload an image and get an asset with an ID and URL for later processing.

参数 (3)
名称类型必填说明
filestring必填base64-encoded bytes (multipart is mapped to this field at the transport layer).
filenamestring | null可选Filename for the uploaded image
idempotency_keystring | null可选Client-provided idempotency key; prevents duplicate execution on retry
image.watermarkPOST /v1/image/watermark

Transform an EXISTING image by overlaying a text or image watermark with position and opacity. To GENERATE images with AI use ai.image.

参数 (7)
名称类型必填说明
imageobject必填Image data or reference for processing
textstring | null可选Text watermark content.
watermark_imageobject | null可选Image watermark source (same ref shape as `image`); null when text is used.
position"top_left" | "top" | "top_right" | "left" | "center" | "right" | "bottom_left" | "bottom" | "bottom_right"可选Position for the watermark (e.g. top-left, center)
default: "bottom_right"
opacitynumber可选Watermark opacity (0.0 to 1.0)
0–1default: 1
format"auto" | "webp" | "avif" | "jpeg" | "png" | "heic"可选Output or input format (e.g. json, csv, png)
idempotency_keystring | null可选Client-provided idempotency key; prevents duplicate execution on retry

4. 完整示例

本模块的生产级端到端范例:先一次性配置,再运行业务流程,尽量覆盖本模块的多数 API。

单文件可运行 Python 程序(仅标准库、无 SDK):拷贝后填入 INFRAI_API_KEY 运行,即可按真实业务流逐步体验本模块核心 API——每一步都真实调用并计费,后续步骤复用前一步返回的真实字段。12 行 helper 就是全部集成代码。

python
#!/usr/bin/env python3
"""Infrai · image-process — runnable real-app example (single file, zero deps).

Copy this file, set your key, run it: every step is a REAL call to
api.infrai.cc, billed at the real (tiny) per-call price, printing the
live JSON response. Get a key at https://infrai.cc/login (Google/
GitHub sign-in grants $2 free credit); add funds at
https://infrai.cc/billing. No SDK — the 12-line helper below is the
entire integration."""
import json
import os
from urllib import error, request

KEY = os.environ.get("INFRAI_API_KEY") or "ifr_..."  # <- your key
BASE = "https://api.infrai.cc"


# Same raw HTTPS POST/GET as every per-method example on this page —
# wrapped once for reuse. There is nothing else to it: no SDK.
def infrai(method, path, body=None):
    req = request.Request(
        BASE + path, method=method,
        data=json.dumps(body).encode() if body is not None else None,
        headers={"Authorization": f"Bearer {KEY}",
                 "Content-Type": "application/json"})
    try:
        with request.urlopen(req, timeout=60) as r:
            return json.loads(r.read())
    except error.HTTPError as e:
        return json.loads(e.read())


def show(label, resp):
    print(f"\n== {label} ==")
    print(json.dumps(resp, indent=2, ensure_ascii=False))
    return resp


# 1) image.process — POST /v1/image/process · Transform an EXISTING image through a chained pipeline of ops, re-encoded once at the end. To GENERATE images with AI use ai.image.  # NOTE: non-trivial real cost
r1 = show("image.process", infrai("POST", "/v1/image/process", {"image":{"url":"https://example.com/photo.jpg"},"ops":[{"op":"resize","params":{"width":800}},{"op":"compress","params":{"quality":80}}]}))

# 2) image.metadata — POST /v1/image/metadata · Inspect an EXISTING image's metadata (dimensions, format, EXIF) without modifying it; read-only.
r2 = show("image.metadata", infrai("POST", "/v1/image/metadata", {"image":"sample"}))