$worker
image-resize
v0.1.9III engine image resize worker (JPEG/PNG/WebP, EXIF orient, scale-to-fit / crop-to-fit)
- macOS: arm64 · x64
- Linux: arm64 · armv7 · x64
- Windows: arm64 · x64 · x86
agent-ready brief for v0.1.9
install + config + dependencies + readme + api reference, all in one place. fetch as agent-context.md for an llm to consume.
full markdown
the same content rendered as discrete blocks below is exposed as a single markdown document at
/workers/image-resize.md?version=0.1.9. paste it into an llm prompt or pipe it through curl from a worker.install
install
$iii worker add image-resize@0.1.9
configuration
iii-config.yaml
- height: 200
quality:
jpeg: 85
webp: 80
strategy: scale-to-fit
width: 200dependencies
no dependencies for v0.1.9
readme
README.md
image-resize
A high-performance image resizing worker built for production workloads.
Installation
iii worker add image-resizeConfiguration
Add the worker to your pipeline configuration:
- name: image-resize
config:
height: 200
quality:
jpeg: 85
webp: 80
strategy: scale-to-fit
width: 200Options
| Option | Type | Default | Description |
|---|---|---|---|
width |
number | 200 | Target width in pixels |
height |
number | 200 | Target height in pixels |
strategy |
string | scale-to-fit |
Resize strategy: scale-to-fit, crop, fill, contain |
quality.jpeg |
number | 85 | JPEG output quality (1-100) |
quality.webp |
number | 80 | WebP output quality (1-100) |
Strategies
- scale-to-fit — Resize to fit within the given dimensions, preserving aspect ratio
- crop — Crop to exact dimensions from center
- fill — Fill the area, stretching if necessary
- contain — Contain within dimensions, adding padding if needed
Usage
import { pipeline } from '@iii/core';
const result = await pipeline.run('image-resize', {
input: buffer,
params: { width: 400, height: 300, strategy: 'crop' }
});Performance
Benchmarks on a standard worker instance (2 vCPU, 512MB):
| Format | Avg Latency | Throughput |
|---|---|---|
| JPEG | 12ms | ~83 ops/s |
| WebP | 18ms | ~55 ops/s |
| PNG | 24ms | ~41 ops/s |
License
Apache 2.0
api reference (json)
agent-api-reference.json
{
"functions": [
{
"description": "Resize an image via channel I/O",
"metadata": {},
"name": "image_resize::resize",
"request_schema": {
"properties": {
"input_channel": {
"description": "StreamChannelRef (read) carrying metadata text + image binary",
"type": "object"
},
"metadata": {
"description": "Optional inline ImageMetadata override",
"properties": {
"format": {
"description": "Source image format",
"enum": [
"jpeg",
"png",
"webp"
],
"type": "string"
},
"height": {
"type": "integer"
},
"output_format": {
"description": "Desired output format (defaults to source format)",
"enum": [
"jpeg",
"png",
"webp"
],
"type": "string"
},
"quality": {
"type": "integer"
},
"strategy": {
"enum": [
"scale-to-fit",
"crop-to-fit"
],
"type": "string"
},
"target_height": {
"type": "integer"
},
"target_width": {
"type": "integer"
},
"width": {
"type": "integer"
}
},
"type": "object"
},
"output_channel": {
"description": "StreamChannelRef (write) for thumbnail output",
"type": "object"
}
},
"required": [
"input_channel",
"output_channel"
],
"type": "object"
},
"response_schema": {
"properties": {
"format": {
"type": "string"
},
"height": {
"type": "integer"
},
"strategy": {
"type": "string"
},
"width": {
"type": "integer"
}
},
"type": "object"
}
}
],
"triggers": []
}