Skills compress-image-to-target-size
Compress an image to fit within a specific file size in bytes using quality-first compression.
install
source · Clone the upstream repo
git clone https://github.com/iterationlayer/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/iterationlayer/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/compress-image-to-target-size" ~/.claude/skills/iterationlayer-skills-compress-image-to-target-size && rm -rf "$T"
manifest:
skills/compress-image-to-target-size/SKILL.mdsource content
Compress Image to Target File Size
Marketing teams and content platforms use this recipe to compress images for email attachments, CMS upload limits, or mobile app asset budgets. Specify a target file size in bytes and the API handles the quality-dimension tradeoff automatically.
APIs Used
Image Transformation (1 credits/request)
Prerequisites
You need an Iteration Layer API key. Get one at platform.iterationlayer.com — free trial credits included, no credit card required.
For full integration guidance (SDKs, auth, MCP, error handling), see the Iteration Layer Integration Guide.
Implementation
curl -X POST \ https://api.iterationlayer.com/image-transformation/v1/transform \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "file": { "type": "url", "name": "photo.jpg", "url": "https://cdn.example.com/uploads/photo.jpg" }, "operations": [ { "type": "compress_to_size", "max_file_size_in_bytes": 500000 } ] }'
import { IterationLayer } from "iterationlayer"; const client = new IterationLayer({ apiKey: "YOUR_API_KEY" }); const result = await client.transform({ file: { type: "url", name: "photo.jpg", url: "https://cdn.example.com/uploads/photo.jpg", }, operations: [ { type: "compress_to_size", max_file_size_in_bytes: 500_000, }, ], });
from iterationlayer import IterationLayer client = IterationLayer(api_key="YOUR_API_KEY") result = client.transform( file={ "type": "url", "name": "photo.jpg", "url": "https://cdn.example.com/uploads/photo.jpg", }, operations=[ { "type": "compress_to_size", "max_file_size_in_bytes": 500_000, }, ], )
package main import il "github.com/iterationlayer/sdk-go" func main() { client := il.NewClient("YOUR_API_KEY") result, err := client.Transform(il.TransformRequest{ File: il.NewFileFromURL( "photo.jpg", "https://cdn.example.com/uploads/photo.jpg", ), Operations: []il.TransformOperation{ il.NewCompressToSizeOperation(500_000), }, }) if err != nil { panic(err) } }
{ "name": "Compress Image to Target File Size", "nodes": [ { "parameters": { "content": "## Compress Image to Target File Size Marketing teams and content platforms use this recipe to compress images for email attachments, CMS upload limits, or mobile app asset budgets. Specify a target file size in bytes and the API handles the quality-dimension tradeoff automatically. **Note:** This workflow uses the Iteration Layer community node (`n8n-nodes-iterationlayer`). Install it via Settings > Community Nodes before importing. Self-hosted n8n only.", "height": 280, "width": 500, "color": 2 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ 200, 40 ], "id": "620f3f66-b3fe-48b4-a3a5-130a7ed310b4", "name": "Overview" }, { "parameters": { "content": "### Step 1: Transform Image Resource: **Image Transformation** Configure the Image Transformation parameters below, then connect your credentials.", "height": 160, "width": 300, "color": 6 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ 475, 100 ], "id": "a87d9afb-d1c2-4e2b-9fac-05039ee12b2a", "name": "Step 1 Note" }, { "parameters": {}, "type": "n8n-nodes-base.manualTrigger", "typeVersion": 1, "position": [ 250, 300 ], "id": "b2c3d4e5-f6a7-4b8c-9d0e-1f2a3b4c5d6e", "name": "Manual Trigger" }, { "parameters": { "resource": "imageTransformation", "fileInputMode": "url", "fileName": "photo.jpg", "fileUrl": "https://cdn.example.com/uploads/photo.jpg", "operations": { "operationValues": [ { "operationType": "compress_to_size", "maxFileSizeInBytes": 500000 } ] } }, "type": "n8n-nodes-iterationlayer.iterationLayer", "typeVersion": 1, "position": [ 500, 300 ], "id": "e5f6a7b8-c9d0-4e1f-2a3b-4c5d6e7f8a9b", "name": "Transform Image", "credentials": { "iterationLayerApi": { "id": "1", "name": "Iteration Layer API" } } } ], "connections": { "Manual Trigger": { "main": [ [ { "node": "Transform Image", "type": "main", "index": 0 } ] ] } }, "settings": { "executionOrder": "v1" } }
Compress the image at [file URL] to fit within [max file size in bytes] bytes. Use the transform_image tool with a compress_to_size operation.
Response
{ "success": true, "data": { "buffer": "/9j/4AAQSkZJRgABAQAAAQ...", "mime_type": "image/jpeg" } }